在 ECMAScript 2017 (ES8) 中,引入了两个新的 Object 方法 - Object.values()
和 Object.entries()
。这两个方法的作用是快速地获取对象的属性值和属性键值对。本文将详细讲解它们的用法及指导意义。
Object.values()
Object.values()
方法可以返回对象中所有属性值的数组。具体用法如下:
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); // [1, 2, 3]
这个方法可以被用来迭代一个对象的所有属性值,而不需要用 for-in
循环或者调用 Object.keys()
和 Object.values()
方法。比如,我们可以使用 Object.values()
方法来获取一个数组中最小的数值:
const arr = [20, 10, 30]; const minValue = Math.min(...Object.values(arr)); // 10
注意,在使用 Object.values()
方法时,属性的遍历顺序与 for...in
循环不同,Object.values()
方法始终是返回属性值的基于数字索引的数组。
Object.entries()
Object.entries()
方法可以返回对象中所有属性键值对的数组。具体用法如下:
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); // [['a', 1], ['b', 2], ['c', 3]]
这个方法可以用来将对象转换成一个数组,方便地遍历对象的属性和值:
const obj = { a: 1, b: 2, c: 3 }; for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); } // Output: // a: 1 // b: 2 // c: 3
同时,Object.entries()
方法也可以使用数组解构赋值来获取键值对:
const [first, second] = Object.entries({ a: 1, b: 2 }); console.log(first, second); // ['a', 1], ['b', 2]
类似于 Object.values()
方法,Object.entries()
方法也返回的是一个基于数字索引的数组,其中每个元素都是一个由键和值组成的数组。
指导意义
使用 Object.values()
和 Object.entries()
方法可以大大简化我们对于对象遍历和获取键值对的操作。这两个方法可以更好地完成对于对象的元素的迭代和查找,同时提供更加符合直觉和普及的开发方式。
当然,这两个方法在某种意义上也加深了开发人员对于 ES8 中对象的理解,同时也促进了 JavaScript 语言的发展。
总结
本文介绍了 ES8 中两个新的 Object 方法 - Object.values()
和 Object.entries()
,并提供了详细的用法及示例代码。这两个方法的引入大大简化了对于对象元素的迭代操作,同时也提升了开发效率,有利于 JavaScript 语言的发展和普及。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/644f7a2e980a9b385b8f2d74