所以,我正在使用這樣的陣列陣列:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
對于我的示例問題,我只能使用嵌套回圈訪問單個元素,我希望能夠(如果可能)使用單個回圈,使用解構來訪問每個子陣列的單個元素
示例(我知道這有點作用,但不是按預期的那樣):我需要訪問每個元素。它需要靈活。如果我正在使用不同大小的陣列。(3 x 3 或 4 x 4 等)撰寫 el1、el2、el3 對于其他大小的陣列陣列不靈活
arrOfArrs.forEach(([el1, el2, el3]) => console.log(el1));
上面將控制臺記錄每個子陣列的每個第一個 el:示例 el1 將記錄:1、4、7。我想獲取單個元素 1,然后是 2、3、4 等。并且能夠遍歷所有元素。這可能嗎?
非常感謝你的幫助!
uj5u.com熱心網友回復:
你可以只使用Array#flat()
代碼:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
const destructuredArray = arrOfArrs.flat()
console.log(destructuredArray)
uj5u.com熱心網友回復:
您可以映射您的父陣列并將它們中的每一個分散到一個新的容器陣列中,如下所示:
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const destructuredArray = []
arrOfArrs.map(array => destructuredArray.push(...array))
console.log(destructuredArray)
這是你的目標嗎?
uj5u.com熱心網友回復:
要真正在單個回圈中訪問每個專案,您首先要按此處所做的那樣展平陣列:https
://stackoverflow.com/a/10865042/6127393
在下面的代碼段中,我直接迭代展平的陣列結果而不將其存盤在一個新變數(基本上是“單線”)。
const arrOfArrs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
[].concat.apply([], arrOfArrs).forEach(one => {
console.log(one)
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480961.html
標籤:javascript 数组 循环 解构
