语法
array.entries()
entries()
方法返回一个数组的迭代对象Iterator
,该对象包含数组的键值对(key/value)
。
迭代对象中数组的索引值作为key
, 数组元素作为value
。
遍历器
Iterator
就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator
接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。
Iterator
为ES6新方法
Iterator
的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是 ES6 创造了一种新的遍历命令for...of
循环,Iterator
接口主要供for...of
消费。
例子
- 使用
entries()
遍历。配合解构使用,可以拿到元素的index和value。计算数组总和
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'];
for (let [index, val] of arr1.entries()) {
console.log(index, val);
}
0 'a'
1 'b'
2 'c'
3 'd'
4 'e'
5 'f'
6 'g'
7 'h'
8 'i'
9 'j'
10 'k'
- 使用
Iterator.next()
遍历
let arrEntries=arr1.entries();
let entry=arrEntries.next();
while(!entry.done){
console.log(entry.value);
entry=arrEntries.next();
}
image