ECMAScript 2017:理解 Object.keys 和 Object.values 方法
在 JavaScript 编程中,我们经常需要对对象进行遍历和操作。ECMAScript 2017 引入了 Object.keys 和 Object.values 方法,这两个方法可以帮助我们更方便地操作对象。本文将详细介绍这两个方法的用法和意义,并提供示例代码。
Object.keys 方法
Object.keys 方法返回一个包含对象所有属性名的数组。这个数组的顺序与对象属性被创建的顺序一致。下面是 Object.keys 方法的语法:
Object.keys(obj)
其中,obj 表示被遍历的对象。下面是一个示例:
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- ------- ------ -- ----- ---- - ----------------- ------------------ -- -------- ------ ---------
在上面的示例中,我们定义了一个对象 obj,然后使用 Object.keys 方法获取了它的所有属性名,并将结果保存在变量 keys 中。最后,我们打印了 keys 的值,可以看到它是一个包含了所有属性名的数组。
Object.keys 方法的返回值是一个数组,因此我们可以使用数组的方法来操作它,比如使用 forEach 方法遍历所有属性名:
Object.keys(obj).forEach(key => { console.log(key + ': ' + obj[key]); });
在上面的示例中,我们使用 forEach 方法遍历了 obj 对象的所有属性名,并打印了每个属性名和对应的属性值。
Object.values 方法
Object.values 方法返回一个包含对象所有属性值的数组。这个数组的顺序与对象属性被创建的顺序一致。下面是 Object.values 方法的语法:
Object.values(obj)
其中,obj 表示被遍历的对象。下面是一个示例:
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- ------- ------ -- ----- ------ - ------------------- -------------------- -- ------- --- -------
在上面的示例中,我们定义了一个对象 obj,然后使用 Object.values 方法获取了它的所有属性值,并将结果保存在变量 values 中。最后,我们打印了 values 的值,可以看到它是一个包含了所有属性值的数组。
与 Object.keys 方法类似,Object.values 方法的返回值是一个数组,因此我们可以使用数组的方法来操作它,比如使用 reduce 方法计算所有属性值的和:
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- ----- --- - ------------------------------- ---- -- --- - ----- ----------------- -- -
在上面的示例中,我们使用 reduce 方法计算了 obj 对象的所有属性值的和,并将结果保存在变量 sum 中。最后,我们打印了 sum 的值,可以看到它是所有属性值的和。
总结
Object.keys 和 Object.values 方法是 ECMAScript 2017 中新增的两个方法,它们可以帮助我们更方便地操作对象。Object.keys 方法返回一个包含对象所有属性名的数组,而 Object.values 方法返回一个包含对象所有属性值的数组。这两个方法都可以使用数组的方法来操作它们的返回值。在实际的 JavaScript 编程中,我们可以利用这两个方法来更加高效地遍历和操作对象。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65dfe3531886fbafa4d15337