ES6 —— keys()、values()、entries()

ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组,它们都返回一个遍历器对象,可以用for...of循环进行遍历。

keys()是对键名的遍历

let obj = {
    0: 'a',
    1: 'b',
    2: 'c'
};
for (let key of Object.keys(obj)) {
    console.log(key); // 0,1,2
}
// for of不支持遍历普通对象,可通过与Object.keys()搭配使用遍历
console.log(Object.keys(obj)) //(3) ["0", "1", "2"]

values()是对键值的遍历

let obj = {
    0: 'a',
    1: 'b',
    2: 'c'
};
for (let key of Object.values(obj)) {
    console.log(key); // 'a', 'b', 'c'
}
console.log(Object.values(obj)) //["a", "b", "c"]

entries()是对键值对的遍历

let obj = {
    0: 'a',
    1: 'b',
    2: 'c'
};
for (let key of Object.entries(obj)) {
    console.log(key);
    //(2) ["0", "a"]
    //(2) ["1", "b"]
    //(2) ["2", "c"]
}
console.log(Object.entries(obj))
// [Array(2), Array(2), Array(2)]
//     0: (2) ["0", "a"]
//     1: (2) ["1", "b"]
//     2: (2) ["2", "c"]

entries方法还有个用法就是:将Object转换为Mapnew Map() 构造函数接受一个可迭代的entries。借助Object.entries方法你可以很容易的将Object转换为Map:

let obj = {
    name: "daisy",
    age: 25
};
let map = new Map(Object.entries(obj));
console.log(map); // Map { name: "daisy", age: 25 }

这三个方法要注意浏览器兼容性IE是不支持的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。