js--陣列的 entries() 獲取迭代方法詳解
阿新 • • 發佈:2021-10-28
前言
本文來總結一下陣列的 entries() 方法的使用。
正文
1、entires() 方法語法詳解
entries() 方法返回一個數組的迭代物件,該物件包含陣列的鍵值對 (key/value)。迭代物件中陣列的索引值作為 key, 陣列元素作為 value。它的原型(__proto__:Array Iterator)上有一個next方法,可用用於遍歷迭代器取得原陣列的[key,value]。這裡需要知道相關迭代器的知識。
2、entires() 方法常見使用及注意
(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)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
(3)二維陣列行排序
function sortTwo(arr) { var entries = arr.entries() var flag = truewhile (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[1] 對應的是二維陣列的每一行,對該項進行排序即可,若值為 flase 表示結束遞迴。
寫在最後
以上就是本文的全部內容,希望給讀者帶來些許的幫助和進步,方便的話點個關注,小白的成長之路會持續更新一些工作中常見的問題和技術點。