JavaScript遍历一个对象的所有属性

JavaScript中,许多内置数据结构(例如Array)都有默认的迭代器,可以直接使用 for...of 循环。

例如:

a = [1,2,3,4,5]

for (let el of a) {
    console.log(el);
}
// 1 2 3 4 5

但是,Object是故意不想像array一样有默认的迭代器。

不过,要想迭代一个对象的所有属性(不需要保证特定的顺序的话),可以通过Objects.keys(..)返回一个array。

let obj = {...}

for (let key of Objects.keys(obj)) {...}

迭代器:iterable,拥有next()方法。

从ES6开始,从一个iterable 中提取迭代器的方法是:iterable 必须支持一个函数,其名称是专门的ES6 符号值 Symbol.iterator。

let a = [1,2,3,4,5]
let it = a[Symbol.iterator]();

it.next().value;     // 1
it.next().value;     // 2
...

猜你喜欢

转载自blog.csdn.net/romeo12334/article/details/82688146