在 ES8 中,JavaScript 引入了 Object.values() 和 Object.entries() 方法,用于获取对象的值和键值对数组。这两个方法大大简化了对象的遍历和检索,让前端开发更加高效。
Object.values() 方法
Object.values() 方法返回一个由对象值组成的数组。简单的说,就是把对象中所有的属性值提取出来,然后放到一个数组中返回。
用法如下:
const myObject = {a: 1, b: 2, c: 3}; const values = Object.values(myObject); console.log(values); // [1, 2, 3]
下面是一个更加实际的例子:
-- -------------------- ---- ------- ----- ----- - - --------- - ----- -------- ---- -- -- --------- - ----- ------ ---- -- -- --------- - ----- ---------- ---- -- - -- ----- ----- - ----------------------------- -- ----------- ------------------- -- --------- ------ ----------
这个例子中,我们使用 Object.values() 方法来快速获取所有用户的姓名,然后使用 map() 方法生成一个新的数组。
需要注意的是,Object.values() 方法只会获取对象的可枚举属性值。如果对象中包含了不可枚举属性或者原型链中的属性,这些属性值就不会被返回。
Object.entries() 方法
Object.entries() 方法返回一个由键值对数组组成的数组。每个键值对数组含有两个元素,第一个是属性名,第二个是对应的属性值。
用法如下:
const myObject = {a: 1, b: 2, c: 3}; const entries = Object.entries(myObject); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
同样,下面是一个更加实际的例子:
-- -------------------- ---- ------- ----- ----- - - --------- - ----- -------- ---- -- -- --------- - ----- ------ ---- -- -- --------- - ----- ---------- ---- -- - -- ----- ------- - ---------------------- --------------------- -- - ---------- ------ -------- ---- ----- ---------- ------ ------ ---- ----- ---------- ------ ---------- ---- ---- - --
需要注意的是,Object.entries() 方法同样只会返回对象的可枚举属性。如果需要获取不可枚举属性或者原型链中的属性,可以使用 Object.getOwnPropertyNames() 或者 Object.getOwnPropertySymbols() 方法。
总结
Object.values() 和 Object.entries() 方法是 ES8 中新增的两个非常实用的方法,它们可以大大简化对象的遍历和检索。需要注意的是,它们只返回对象的可枚举属性,如果需要获取不可枚举属性或者原型链中的属性,需要使用其他方法。
希望这篇文章能够帮助大家更加深入地理解 Object.values() 和 Object.entries() 方法的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6542ae847d4982a6ebc55faf