随着 JavaScript 在各个领域的广泛应用,对象的操作越来越常见。然而,JavaScript 对象的语法并不总是很友好。许多开发者在遍历对象时使用了 Object.keys
方法。然而,在 ES8 中,我们有一个更好的选择:Object.values
。
Object.keys 和 Object.values 方法
在了解如何使用 Object.values
方法之前,我们需要先了解 Object.keys
方法。Object.keys
方法返回一个数组,该数组包含了对象的所有键名。例如:
-- -------------------- ---- ------- ----- ----- - - ----- ------ ---- --- ------- ------ -- ----- ---- - ------------------- ------------------ -- -------- ------ ---------
我们可以看到,Object.keys
方法返回了 myObj
中的所有键名。
相应的,Object.values
方法将返回给定对象的所有值组成的数组。例如:
-- -------------------- ---- ------- ----- ----- - - ----- ------ ---- --- ------- ------ -- ----- ------ - --------------------- -------------------- -- ------- --- -------
我们可以看到,Object.values
方法返回了 myObj
中的所有值。其中顺序与 Object.keys
返回的顺序相同。这意味着我们可以在不需要知道对象的键名的情况下,遍历对象和执行操作。
使用 Object.values 提高代码效率
在某些情况下,使用 Object.values
比使用 Object.keys
更加方便和有效率。例如,假设我们有一个包含学生分数的对象:
const students = { tom: 80, jerry: 90, john: 75, bob: 85 };
如果我们想要统计学生的总分,则可以使用 Object.keys
和 reduce
方法:
const totalScore = Object.keys(students).reduce((total, student) => { return total + students[student]; }, 0); console.log(totalScore); // 330
然而,使用 Object.values
方法可以让代码更加简洁:
const totalScore = Object.values(students).reduce((total, score) => { return total + score; }, 0); console.log(totalScore); // 330
当对象中有许多键值对时,使用 Object.values
可以节省时间和代码行数。
示例代码
下面是使用 Object.keys
和 Object.values
方法遍历对象的示例代码:
-- -------------------- ---- ------- ----- ----- - - ----- ------ ---- --- ------- ------ -- -- -- ----------- ---- -------------------------------- -- - ----- ----- - ----------- -------------------- ----------- --- -- -- ------------- ---- ------------------------------------ -- - ------------------- ---
输出如下:
name: Tom age: 20 gender: male Tom 20 male
总结
在 ES8 中,Object.values
方法提供了一种更加方便和有效率的方式,遍历对象和执行操作。我们可以使用 Object.values
方法来替代 Object.keys
方法。在许多情况下,使用 Object.values
可以更加简洁和易于理解。同时,Object.values
还能够提高代码的效率和可读性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64eaabdaf6b2d6eab35800f9