您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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 提供了可枚举对象上的值的,这个可以很方便地对象上的值用于遍历。提高的简洁性。这里需要注意的是在值时会对为的键进行排序,所以对应的值也会跟着一起被排序,所以得到的结果会有所不同。


联系我
置顶