ECMAScript 2017 中如何使用 Object.values 和 Object.entries
随着 ECMAScript 的不断更新,新的语言特性也在不断涌现。其中,Object.values 和 Object.entries 是 ECMAScript 2017 中新增加的两个方法,可以方便地获取对象的值和键值对。本文将详细介绍这两个方法的使用,并给出一些示例代码,帮助读者更好地理解和应用。
Object.values 方法
Object.values 方法用于获取一个对象中所有的值,返回一个由值组成的数组。这个方法的语法如下:
Object.values(obj)
其中,obj 表示需要获取值的对象。
示例代码:
let obj = {a: 1, b: 2, c: 3}; let values = Object.values(obj); console.log(values); // 输出 [1, 2, 3]
上述代码中,我们定义了一个包含三个键值对的对象 obj,然后使用 Object.values 方法获取其中所有的值,并将结果存储到 values 变量中。最后,我们将 values 变量输出到控制台,可以看到输出结果为 [1, 2, 3]。
需要注意的是,Object.values 方法返回的值的顺序和对象中键值对的定义顺序相同。值的顺序与对象中键的定义顺序无关。
Object.entries 方法
Object.entries 方法用于获取一个对象中所有的键值对,返回一个由键值对组成的数组。这个方法的语法如下:
Object.entries(obj)
其中,obj 表示需要获取键值对的对象。
示例代码:
let obj = {a: 1, b: 2, c: 3}; let entries = Object.entries(obj); console.log(entries); // 输出 [["a", 1], ["b", 2], ["c", 3]]
上述代码中,我们定义了一个包含三个键值对的对象 obj,然后使用 Object.entries 方法获取其中所有的键值对,并将结果存储到 entries 变量中。最后,我们将 entries 变量输出到控制台,可以看到输出结果为 [["a", 1], ["b", 2], ["c", 3]]。
需要注意的是,Object.entries 方法返回的数组中,每个键值对都是一个数组,包含两个元素,第一个元素是键,第二个元素是值。返回的键值对的顺序和对象中键值对的定义顺序相同。
指导意义
Object.values 和 Object.entries 是两个非常方便的方法,可以帮助我们快速地获取对象的值和键值对,并在某些场景下优化代码的编写。比如,在遍历对象时,我们可以使用 Object.entries 获取键值对,并通过数组解构的方式获取键和值:
let obj = {a: 1, b: 2, c: 3}; for (let [key, value] of Object.entries(obj)) { console.log(key, value); // 输出 a 1、b 2、c 3 }
或者我们可以使用 Object.values 方法获取对象的值,并利用数组的 forEach 方法遍历这些值:
let obj = {a: 1, b: 2, c: 3}; Object.values(obj).forEach((value) => { console.log(value); // 输出 1、2、3 });
以上代码都能实现与直接使用 for...in 迭代相同的效果,但使用 Object.entries 和 Object.values 方法可以使代码更加简洁和易于维护。
总结
Object.values 和 Object.entries 是 ECMAScript 2017 中新增加的两个方法,可以方便地获取对象的值和键值对。它们的使用方法和语法都比较简单,但是在某些场景下能够帮助我们提高代码的编写效率。希望本文能够对读者有所启发,帮助大家更好地理解和使用这两个方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645e3614968c7c53b0099ba6