我撰寫了一個簡單的嵌套回圈函式來乘以陣列中的所有專案并輸出總值,但每次運行回圈函式時,我的瀏覽器要么崩潰,要么不停止加載
function multiplyAll(arr){
Let product = 1;
for(let i = 0; i <
arr.length; i ){
for(let j = 0; j <
arr[i].length; j *= product);
}
return product;
}
multiplyAll([[1], [2], [3]]);
uj5u.com熱心網友回復:
你在這里創建一個無限回圈是因為
for (let j = 0; j < arr[i].length; j *= product);
在這里,j總是0。
如果要乘以所有嵌套值,則應執行以下操作:
function multiplyAll(arr) {
let product = 1;
for (let i = 0; i < arr.length; i ) {
for (let j = 0; j < arr[i].length; j)
product *= arr[i][j];
}
return product;
}
console.log(multiplyAll([[1], [2], [3]]));
如果您只想將所有嵌套值相乘,那么您可以簡單地執行以下操作:
function multiplyAll(arr) {
return arr.flat().reduce((acc, curr) => acc * curr, 1);
// If you want to get numbers at any depth then you can flat at any level
// using Infinity as
// return arr.flat(Infinity).reduce((acc, curr) => acc * curr, 1);
}
console.log(multiplyAll([[1], [2], [3]]));
uj5u.com熱心網友回復:
嗯,看起來你有多個問題,其中兩個已經如下:
- 在第 2 行,你寫了一次 Let,開頭是一個大字母。
- 你的第二個陣列需要一個 {} 否則它會出錯
- 你能給我解釋一下 j*= 產品嗎?您能否舉幾個例子來說明您將如何稱呼本準則以及您會得到什么樣的回應?根據這一點,我將為您創建一個明確的答案!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369777.html
標籤:javascript 数组 循环 碰撞 崩溃报告
下一篇:JavaScript中的[...array].map(...)和[...array.map(...)]之間有區別嗎?
