【问题标题】:Javascript entries() not returning anythingJavascript条目()不返回任何东西
【发布时间】: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


    【解决方案1】:

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

    var array1 = ['a', 'b', 'c'];
    var iterator1 = array1.entries();
    
    for ([k, v] of iterator1) {
      console.log(k, v)
    }

    另一种方式是使用iteratorsdone属性和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()
    }

    【讨论】:

      【解决方案2】:

      要使用数组的索引和元素,您可以将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()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-28
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多