📜  JavaScript数组keys()(1)

📅  最后修改于: 2023-12-03 15:16:18.176000             🧑  作者: Mango

JavaScript数组keys()

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
    }