📅  最后修改于: 2023-12-03 15:01:38.305000             🧑  作者: Mango
Object.entries()
是 ES2017 中新增的方法,它返回对象自身所有可枚举的属性键值对数组。其语法形式如下:
Object.entries(obj)
其中 obj
参数为要获取键值对数组的对象。
下面是一个简单的例子:
const obj = {
foo: 'bar',
baz: 42
};
console.log(Object.entries(obj));
// Output: [ ["foo", "bar"], ["baz", 42] ]
在这个例子中,obj
对象有两个属性:foo
和 baz
。Object.entries(obj)
将返回一个数组,包含二元数组,每个数组代表 obj
所有可枚举的属性的键值对。
如果一个对象没有任何属性,Object.entries()
返回一个空数组。
const emptyObj = {};
console.log(Object.entries(emptyObj));
// Output: []
Object.entries()
的实现方式是基于 for...in
循环来获取对象的所有可枚举属性。因此,它只能获取对象自身所有的可枚举属性,不包括继承的属性。
Object.entries()
还有一个互补的方法,叫做 Object.fromEntries()
。它接受一个键值对数组,返回一个由这个数组中的值组成的对象。具体使用方法如下:
const entries = [
['foo', 'bar'],
['baz', 42]
];
const obj = Object.fromEntries(entries);
console.log(obj);
// Output: { foo: 'bar', baz: 42 }
在这个例子中,entries
是一个嵌套数组,包含了两个二元数组。传递给 Object.fromEntries()
后,它将返回一个由这个数组中的值组成的对象。
总结
Object.entries()
方法返回对象自身所有可枚举的属性键值对的数组,每个数组都是二元数组,第一个元素是属性名,第二个元素是属性值。此方法只能获取对象自身的属性,不包括继承的属性。