【发布时间】:2019-08-25 09:39:16
【问题描述】:
我想获取数组元素及其索引,我使用 entry() 如下,但它没有打印出任何内容,也没有给出任何错误。
var array1 = ['a', 'b', 'c'];
var iterator1 = array1.entries();
for ([k, v] in iterator1) {
console.log(k, v)
}
【问题讨论】:
标签: javascript enumerate
我想获取数组元素及其索引,我使用 entry() 如下,但它没有打印出任何内容,也没有给出任何错误。
var array1 = ['a', 'b', 'c'];
var iterator1 = array1.entries();
for ([k, v] in iterator1) {
console.log(k, v)
}
【问题讨论】:
标签: javascript enumerate
您应该使用for of 而不是for in
var array1 = ['a', 'b', 'c'];
var iterator1 = array1.entries();
for ([k, v] of iterator1) {
console.log(k, v)
}
另一种方式是使用iterators的done属性和next方法
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"]
【讨论】: