js數組的 entries() 獲取迭代方法

1、entires() 方法語法詳解

entries() 方法返回一個數組的迭代對象,該對象包含數組的鍵值對 (key/value)

迭代對象中數組的索引值作為 key, 數組元素作為 value。它的原型(__proto__:Array Iterator)上有一個next方法,可用用於遍歷迭代器取得原數組的[key,value] 。這裡需要知道相關迭代器的知識。

2、entires() 方法常見使用及註意

2.1 返回迭代器對象

    var arr = ["red", "blue", "green"]
    var x = arr.entries()
    console.log(x); // Array Iterator {}
    console.log(x.next()) //{value: Array:[0, "red"],done:false}
    console.log(x.next()) //{value: Array:[1, "blue"],done:false}
    console.log(x.next()) //{value: Array:[2, "green"],done:false}
    console.log(x.next()) //{value: undefined, done: true}

2.2 for…of…的使用

    const options = [1, , , , 5];
    for (const [index, value] of options.entries()) {
      console.log(value);
    }
    // 0 1
    // 1 undefined
    // 2 undefined
    // 3 undefined
    // 4 5

2.3 二維數組行排序

    function sortTwo(arr) {
      var entries = arr.entries()
      var flag = true
      while (flag) {
        var res = entries.next()
        if (!res.done) {
          res.value[1].sort((a, b) => a - b);
          flag = true
        } else {
          flag = false
        }
      }
      return arr
    }
    var arr = [[1, 3, 2], [44, 33], [11, 55, 44, 33]]
    sortTwo(arr)
    console.log(arr);// [[1, 2, 3], [33, 44], [11, 33, 44, 55]]

上面的代碼中 sortTwo 方法中首先獲取傳入數組的迭代對象,然後通過定義一個初始化標識為 true,通過遞歸調用迭代對象 entires next 方法賦值給 res 對象,判斷res對象的d one 屬性,若該值為 true 表示可以遞歸,res.value 對應的是二維數組的每一行,對該項進行排序即可,若值為 flase 表示結束遞歸。

總結:

到此這篇關於js數組的 entries() 獲取迭代方法的文章就介紹到這瞭,更多相關js數組 entries() 獲取迭代內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: