ES7 中新增了 Object.entries
和 Object.values
两个方法,这两个方法都是用于处理对象的。
Object.entries 方法
Object.entries
方法的作用是将对象转换成键值对数组,数组中的每个元素都是一个由键和值组成的数组。该方法的语法如下:
Object.entries(obj)
其中,obj
是要转换的对象。
示例代码:
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' } const entries = Object.entries(obj) console.log(entries)
上述代码的输出结果为:
[ [ 'key1', 'value1' ], [ 'key2', 'value2' ], [ 'key3', 'value3' ] ]
另外,Object.entries
方法可以和 for...of
循环结合使用,方便地遍历对象的键值对:
for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`) }
Object.values 方法
Object.values
方法的作用是将对象转换成值数组,该数组包含了对象的所有属性值。该方法的语法如下:
Object.values(obj)
其中,obj
是要转换的对象。
示例代码:
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' } const values = Object.values(obj) console.log(values)
上述代码的输出结果为:
[ 'value1', 'value2', 'value3' ]
另外,Object.values
方法还可以结合 Array.prototype.includes
方法使用,判断一个对象是否包含某个值:
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' } if (Object.values(obj).includes('value1')) { console.log('obj 包含 value1') }
应用场景
Object.entries
和 Object.values
方法的应用场景非常广泛,以下是一些常见的用法:
- 遍历对象
- 筛选对象
- 等等
下面是一些示例:
遍历对象
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' } for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`) }
筛选对象
-- -------------------- ---- ------- ----- --- - - ----- --------- ----- --------- ----- -------- - ----- -------- - --------------------------------- ------- -- - ------ ------------------- -- ---------------------
上述代码的输出结果为:
[ [ 'key1', 'value1' ], [ 'key2', 'value2' ], [ 'key3', 'value3' ] ]
判断对象是否包含某个值
const obj = { key1: 'value1', key2: 'value2', key3: 'value3' } if (Object.values(obj).includes('value1')) { console.log('obj 包含 value1') }
总结
Object.entries
和 Object.values
方法是 ES7 中新增的两个非常实用的方法,可以在处理对象时提供很大的方便。它们的应用场景非常广泛,掌握它们的使用方法对于前端开发人员来说非常有意义。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65017f4c95b1f8cacdf34f35