ES6+ Object.values()
我们学习了 Object.keys()
可以对象上可枚举的 key 作为数组,对应的是不是有让我们对象上所有值的呢?答案是肯定的,ES6 中提供了 Object.values()
可枚举对象上的值作为数组。
Object.values()
返回给定对象自身的所有可枚举值的数组,值的顺序与使用 for...in
循环的顺序相同 (区别在于 for-in 循环枚举原型链中的)。与 Object.keys()
相反是 key,是 value,其他的使用特性基本相同。
Object.values(obj);
var obj = {a: , b: , c: };
Object.values(obj) // [1, 2, 3]
我们知道 Object.keys()
的参数会被类型转换为对象,数值对象没有可遍历的对象,所有返回空数组。同样,Object.values()
和 Object.keys()
一样都会进行类型转换,所以传入的是数字或布尔值时,则返回空数组
console.log(Object.values()); // []
Object.values(false) // []
我们学习 Object.keys()
会对是数值的键进行排序,个过程中对应的值也会跟着改变位置,所有使用 Object.values()
返回的数组是按 Object.keys()
顺序后的结果展示的,所以得到的值要和排序后的一一对应。
var obj = {: 'a', : 'b', : 'c'};
Object.values(obj) // ['b', 'c', 'a']
values()
传入的对象如果是字符串时,则会把字符拆成数组中的单个项,如下:
Object.values('abc') // ['a', 'b', 'c']
本节主要讲解了 ES6 提供了可枚举对象上的值的,这个可以很方便地对象上的值用于遍历。提高的简洁性。这里需要注意的是在值时会对为的键进行排序,所以对应的值也会跟着一起被排序,所以得到的结果会有所不同。