Object.keys()
Object.keys()
:返回一个由一个给定对象的自身可枚举属性
组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // ['0', '1', '2']
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // ['0', '1', '2']
var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // ['2', '7', '100']
var myObj = Object.create({}, {
getFoo: {
value: function () { return this.foo; }
}
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // ['foo']
Object.create
想了解的可以 看这里
Object.values()
Object.values()
:返回一个给定对象自身的所有可枚举属性值
的数组,值的顺序与使用for...in
循环的顺序相同 ( 区别在于for-in
循环枚举原型链中的属性 )。
var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']
var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']
var my_obj = Object.create({}, {
getFoo: {
value: function() { return this.foo; }
}
});
my_obj.foo = 'bar';
console.log(Object.values(my_obj)); // ['bar']
console.log(Object.values('foo')); // ['f', 'o', 'o']
Object.entries()
Object.entries()
:返回一个给定对象自身**可枚举属性的键值对**
数组,其排列与使用 for...in
循环遍历该对象时返回的顺序一致(区别在于for-in
循环还会枚举原型链中的属性)。
const obj= {
a: 'somestring',
b: 42
};
for (const [key, value] of Object.entries(object1)) {
console.log(`${key}: ${value}`);
}
// "a: somestring"
// "b: 42"