Object.entries() 返回一个给定对象自身可枚举属性的 [key, value] 对的形式的数组。这个方法使得获取对象的键值对变得非常方便,尤其是在需要迭代这些键值对的时候。
语法
Object.entries(obj)
参数
obj: 需要被转换的对象。
返回值
一个由给定对象自身的可枚举属性的键值对组成的数组。每个元素本身也是一个包含两个元素的数组,第一个元素是键(字符串),第二个元素是值。
示例
const obj = { a: 1, b: 2, c: 3 };
const entries = Object.entries(obj);
console.log(entries); // 输出: [ ['a', 1], ['b', 2], ['c', 3] ]
使用场景
Object.entries() 经常用在需要遍历对象的所有键值对的情况下,比如将对象的键值对进行某些逻辑处理等。
兼容性
需要注意的是,Object.entries() 是在 ECMAScript 2017 (ES8) 中引入的,因此在一些旧版浏览器或环境中可能不支持此方法。如果你需要支持不支持 Object.entries() 的环境,可以使用下面的方法:
if (!Object.entries) {
Object.entries = function (obj) {
var ownProps = Object.keys(obj),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
}
这段代码会检查 Object.entries 是否存在,如果不存在则定义它。它通过获取对象的所有可枚举属性的键,然后为每个键创建一个 [key, value] 的数组。
使用 Object.entries() 可以让代码更加简洁和易读,特别是在处理需要同时访问键和值的情况。