在 JavaScript 中,我们经常需要将一个对象的键值对以数组的形式进行处理,例如进行遍历、排序等操作。在 ES7 中,引入了 Object.entries
方法,可以将一个对象的属性列表转换为键值对数组。
概述
Object.entries
方法返回一个给定对象自身可枚举属性的键值对数组,其排列顺序和对象自身属性枚举的顺序相同。如果对象不是一个对象,则会抛出一个 TypeError 异常。
Object.entries(obj)
其中,obj
为要转换的对象。返回结果为一个由 [key, value] 组成的二维数组。
示例
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // Output: [["a", 1], ["b", 2], ["c", 3]]
应用
Object.entries
方法可以用来方便地对对象进行遍历、过滤、转换等操作。
遍历
可以使用 for...of
循环来遍历键值对数组。
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- --- ------ ----- ------ -- -------------------- - -------------------- ----------- - -- ------- -- -- - -- -- - -- -- -
过滤
使用 Array.filter
方法可以对一个对象的属性进行过滤,返回一个符合条件的属性对象。
const obj = { a: 1, b: 2, c: 3 }; const filtered = Object.entries(obj).filter(([key, value]) => { return value > 1; }); console.log(filtered); // Output: [["b", 2], ["c", 3]]
转换
使用 Array.map
方法可以对一个对象的属性进行转换,返回转换后的属性值数组。
const obj = { a: 1, b: 2, c: 3 }; const values = Object.entries(obj).map(([key, value]) => { return value * 2; }); console.log(values); // Output: [2, 4, 6]
注意事项
Object.entries
方法只包括可枚举属性,不包含不可枚举属性和继承属性。- 如果对象属性名为 Symbol 类型,则会将 Symbol 类型的属性名转换为字符串类型。
- 如果对象不是一个对象,则会抛出 TypeError 异常。
总结
Object.entries
方法可以方便地将一个对象的属性列表转换为键值对数组,可以用来方便地遍历、过滤、转换等操作。但需要注意其只包括可枚举属性、不包括不可枚举属性和继承属性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64abce8948841e98947a58d2