簡體   English   中英

當我嘗試循環 function 時,我的瀏覽器會滯后?

[英]My browser lags when I try a loop function?

我寫了一個簡單的嵌套循環 function 來乘以數組中的所有項目和 output 總值,但每次我運行一個循環 function 我的瀏覽器不會停止加載或崩潰

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]]);

您在這里創建了一個無限循環,因為

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]]));

好吧,看起來你有多個問題,其中兩個已經如下: 1. 在第 2 行中,你寫了一次 Let 以一個大字母開頭。 那是第一個問題,第二個問題是你的第二個數組需要一個 {} 否則會出錯,你能解釋一下 j*= 產品嗎? 您能否舉例說明如何稱呼本准則以及您會得到什么樣的回應? 取決於此,我將為您創建一個明確的答案!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM