Home > Mobile >  My browser lags when I try a loop function?
My browser lags when I try a loop function?

Time:11-30

I wrote a simple nested loop function to multiply all items in an array and output the total value, but each time is I run a loop function my browser either crashes or doesn't stop loading

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

CodePudding user response:

You are creating an infinite loop here because of

for (let j = 0; j < arr[i].length; j *= product);

Here, j is always 0.

If you want to multiply all the nested value then you should do as:

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]]));
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>


If you just want to multiple all the nested value then you can simply do as:

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]]));
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

CodePudding user response:

Well, it looks like you have multiple issues, two of them are already as following: 1. in line 2 you wrote once Let with a big letter at the beginning. That is the first Issue, the second issue is that your second array needs an {} otherwise it will error out, also can you please explain to me j*= product? Can you maybe include a few examples of how you would call this Code and what kind of response you would get? depending on that I will create you a Clear answer!

  • Related