面试题答案
一键面试const arr = [1, 2, 3, 4, 5];
const iterator = arr[Symbol.iterator]();
let sum = 0;
let result = iterator.next();
while (!result.done) {
sum += result.value * result.value;
result = iterator.next();
}
console.log(sum);
迭代器的作用解释
- 遍历控制:通过调用数组的
Symbol.iterator
方法,我们获取到一个迭代器对象。迭代器对象提供了next
方法,每次调用next
方法,它会返回一个包含value
(当前遍历到的元素)和done
(是否遍历结束)属性的对象。这使得我们可以精确地控制遍历的过程,每次只获取一个元素。 - 统一遍历方式:迭代器为不同的数据结构(如数组、Set、Map等)提供了统一的遍历接口。无论数据结构内部的存储方式如何,都可以通过迭代器的
next
方法按顺序访问元素,在上述代码中,我们利用这一特性来遍历数组。