Javascript entries() 没有返回任何东西

Javascript entries() not returning anything

我想获取数组元素及其索引,我使用 entries() 如下,但它没有打印出任何内容,也没有给出任何错误。

var array1 = ['a', 'b', 'c'];

var iterator1 = array1.entries();

for ([k, v] in iterator1) {
  console.log(k, v)
}

您应该使用 for of 而不是 for in

var array1 = ['a', 'b', 'c'];
var iterator1 = array1.entries();

for ([k, v] of iterator1) {
  console.log(k, v)
}


另一种方法是使用done属性和next的方法iterators

var array1 = ['a', 'b', 'c'];
var iterator1 = array1.entries();
let result = iterator1.next()

while (!result.done) {
  let [k, v] = result.value
  console.log(k, v)
  result = iterator1.next()
}

要使用数组的索引和元素,可以将 const [key, value] 符号与 of 关键字结合使用,以便使用迭代器。

const a = ['a', 'b', 'c'];

for (const [index, element] of a.entries()) {
  console.log(index, element);
}

// 0 'a' 
// 1 'b' 
// 2 'c'

您也可以直接在迭代器上调用 next。

var array1 = ['a', 'b', 'c'];

var iterator1 = array1.entries();

console.log(iterator1.next().value);
// expected output: Array [0, "a"]

console.log(iterator1.next().value);
// expected output: Array [1, "b"]

另请参阅:Mozilla docs - Array.entries()