当我尝试循环功能时我的浏览器滞后?

My browser lags when I try a loop 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]]);

嗯,看起来你有多个问题,其中两个已经如下:

  1. 你在第 2 行写了一次 Let,开头有一个大字母。
  2. 您的第二个数组需要 {} 否则会出错
  3. 你能给我解释一下 j*= 产品吗?您能否提供一些示例,说明您如何称呼此准则以及您会得到什么样的回应?视情况而定,我会给你一个明确的答案!

你在这里创建了一个无限循环,因为

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