Home > database >  Multidimensional Array Javascript with nested loop
Multidimensional Array Javascript with nested loop

Time:12-09

For example i have a array like that

var myArray = [
[1,2,3],
[4,5,6],
[7,8,9,10],
[[11,12],[13,14,15]]];

    for (var i = 0;i < myArray.length;i  ){
    for(var j = 0 ;j< myArray[i].length;j  ){
        for(var k = 0;k< myArray[i][j].length;k  ){
            console.log(myArray[i],[j][k]);

        }
    }
        
      
}

   

But output is only 11,12,13,14,15. And i wanna print all the values Could some one help to fix Thank you in advance

CodePudding user response:

You can use recursive function first pass it the whole array then loop it and check if the element you are accessing is array or digit if its array call the same function again and only pass it this element otherwise if its digit just print it

This works even when you dont know how many nested arrays you have otherwise use MWO answer

var myArray = [
[1,2,3],
[4,5,6],
[7,8,9,10],
[[11,12],[13,14,15]]];

function printArray(arr){
  for(var i = 0; i < arr.length; i  ){
    if(Array.isArray(arr[i])){
      printArray(arr[i]);
    }else{
      console.log(arr[i]);
    }
  }
}

printArray(myArray);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

CodePudding user response:

Use e.g. Array.prototype.flat(), .flat(2) flattens to the level of 2 arrays deep.

var myArray = [
[1,2,3],
[4,5,6],
[7,8,9,10],
[[11,12],[13,14,15]]];

console.log(myArray.flat(2));
   
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

  • Related