📅  最后修改于: 2023-12-03 15:16:18.176000             🧑  作者: Mango
keys()
方法返回一个包含数组中每个索引键的数组迭代器对象。
arr.keys()
无参数。
返回一个包含数组中每个索引键的数组迭代器对象。
const arr = ['apple', 'banana', 'orange'];
const iterator = arr.keys();
console.log(iterator.next()); // {value: 0, done: false}
console.log(iterator.next()); // {value: 1, done: false}
console.log(iterator.next()); // {value: 2, done: false}
console.log(iterator.next()); // {value: undefined, done: true}
在以上示例中,我们首先创建了一个包含三个元素的数组。然后我们通过 keys()
方法创建了一个数组迭代器对象 iterator
。接下来我们通过 next()
方法不断访问迭代器对象的下一个键,直至所有键被访问,此时 iterator.next()
返回 {value: undefined, done: true}
。
keys()
方法返回的数组迭代器对象是一个惰性求值(lazy evaluation)的对象。当迭代器对象上的 next()
方法被调用时,才会生成下一个键。
在使用 for...of
循环遍历迭代器对象时,只会遍历到数组索引键,而不会遍历到数组中的其他属性。例如:
const arr = ['apple', 'banana', 'orange'];
arr.foo = 'bar';
for (const key of arr.keys()) {
console.log(key); // 0, 1, 2
}
keys()
方法返回的数组迭代器对象是一个可迭代对象,因此可以使用 for...of
循环遍历。例如:
const arr = ['apple', 'banana', 'orange'];
const iterator = arr.keys();
for (const key of iterator) {
console.log(key); // 0, 1, 2
}