面试题答案
一键面试可迭代对象定义
在 JavaScript 中,可迭代对象是一种实现了可迭代协议的数据结构。对象需要实现一个 Symbol.iterator
方法,该方法返回一个迭代器对象。迭代器对象有一个 next()
方法,每次调用 next()
方法返回一个包含 value
和 done
属性的对象,value
是迭代的当前值,done
是一个布尔值,表示迭代是否结束。
使用 for...of
循环遍历自定义可迭代对象示例
// 自定义一个可迭代对象
const myIterable = {
data: [1, 2, 3],
[Symbol.iterator]() {
let index = 0;
return {
next: () => {
if (index < this.data.length) {
return { value: this.data[index++], done: false };
} else {
return { done: true };
}
}
};
}
};
// 使用 for...of 循环遍历
for (const value of myIterable) {
console.log(value);
}
上述代码中,首先定义了一个 myIterable
对象,实现了 Symbol.iterator
方法,返回一个迭代器。然后通过 for...of
循环遍历 myIterable
,输出其中的每一个值。