我正在嘗試遍歷陣列陣列,在每次迭代之后,遞回呼叫該函式以再次回圈遍歷陣列,但沿著陣列陣列更遠的位置。下面的代碼示例。臨時行只是一個示例,資料可能會更改并在外部陣列中包含或多或少的陣列。有沒有辦法在不展平陣列的情況下做到這一點?
tempRows = [[1,1,1],
[1,1,1],
[1,1,1]
]
num = 10;
func(start) {
for (let i = 0; i < tempRows.length; i ) {
for (let j = start; j < tempRows[i].length; j ) {
console.log(start) // start is now one element forward
//then loop through the rest of the elements as usual
}
}
if ( start < num) {
func(start 1)
}
return;
}
func(0)
uj5u.com熱心網友回復:
在每次遞回之前添加一個條件就可以了。在下面的代碼中,只有每個陣列的前兩個陣列(如果它們是)將被遞回。
let tempRows = [[0, [1.1, 1.2, 1.3], [2.1, 2.2]],
[3, 4, 5],
[6, 7, 8]
]
let limit = 1;
function repeatWithException(multiArray) {
multiArray.forEach((item, idx) => {
if (!Array.isArray(item))
console.log(item)
else
if (idx <= limit)
repeatWithException(item);
})
}
repeatWithException(tempRows)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/508432.html
標籤:javascript 数组 递归