在 ECMAScript 2017 (ES8) 中,新增了两个方法 Object.values() 和 Object.entries(),这两个方法能够帮助开发者更方便地操作对象,提高开发效率。
Object.values()
Object.values() 方法返回一个给定对象自身的所有可枚举属性值的数组,顺序与使用 for...in 循环遍历该对象的属性值的顺序相同(不同的是 for...in 循环还会枚举原型链中的属性)。
----- --- - - -- -- -- -- -- - -- ----- ------ - ------------------- -------------------- -- --- -- --
Object.values() 会忽略那些值为 undefined 或 null 的属性。
----- --- - - -- -- -- ----- -- --------- -- ----- ------ - ------------------- -------------------- -- --- ----- ----------
Object.entries()
Object.entries() 方法返回一个给定对象自身的所有可枚举属性键值对的数组,顺序与使用 for...in 循环遍历该对象的属性键值对的顺序相同(不同的是 for...in 循环还会枚举原型链中的属性)。
----- --- - - -- -- -- -- -- - -- ----- ------- - -------------------- --------------------- -- ------ --- ----- --- ----- ---
Object.entries() 会忽略那些值为 undefined 或 null 的属性。
----- --- - - -- -- -- ----- -- --------- -- ----- ------- - -------------------- --------------------- -- ------ --- ----- ------ ----- -----------
指导意义
Object.values() 和 Object.entries() 方法的引入,使得开发者能够更方便地操作对象的属性值和键值对,减少了一些冗余的代码,提高了开发效率。
在实际开发中,我们可以用 Object.values() 和 Object.entries() 方法来遍历对象,计算对象的属性值之和、属性值的平均值等等。同时,我们还可以利用这两个方法来比较两个对象是否相等,只需要将它们的属性值或键值对都转换成数组,再进行比较即可。
----- ---- - - -- -- -- -- -- - -- ----- ---- - - -- -- -- -- -- - -- ----- ---- - - -- -- -- -- -- - -- ----- ------- - ------ ----- -- - ----- -------- - --------------------- ----- -------- - --------------------- -- ---------------- --- ---------------- - ------ ------ - --- ---- - - -- - - ---------------- ---- - ----- ------ ------- - ------------ ----- ------ ------- - ------------ -- ----- --- ---- -- ------ --- ------- - ------ ------ - - ------ ----- -- ------------------------- ------- -- ---- ------------------------- ------- -- -----
总结
Object.values() 和 Object.entries() 方法的引入,使得开发者能够更方便地操作对象,提高了开发效率。我们可以利用这两个方法来遍历对象、计算对象的属性值之和、属性值的平均值等等。同时,我们还可以利用这两个方法来比较两个对象是否相等。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65f25f562b3ccec22faf85f1