当前位置: 首页 > 知识库问答 >
问题:

带嵌套循环的多维数组Javascript

赵智
2023-03-14

例如,我有一个这样的数组

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

        }
    }
        
      
}

   

但输出只有11、12、13、14、15。我想打印所有的值。有人能帮我修改一下吗?提前谢谢

共有3个答案

訾渝
2023-03-14

此功能适用于任何深度的多维数组。使用递归

var myArray = [1,2,33,44, [1,2,3], [[11,12],[13,14,15]]];

var myArray1 = [1,2,33,44, [[11,12],[13,14,15]]];


var deepFlattenArray = function (array){
    var result = []; 
    
    array.forEach(function (element) {
      if (Array.isArray(element)) {
          result = result.concat(deepFlattenArray(element)); 
      } else {
          result.push(element);
      }
    });
    
    return result;
};

console.log(deepFlattenArray(myArray));
 // output = [ 1,  2, 33, 44,  1, 2,  3, 11, 12, 13, 14, 15]

console.log(deepFlattenArray(myArray1));
// output = [1,  2, 33, 44, 11, 12, 13, 14, 15 ]
堵飞鸿
2023-03-14

您可以使用递归函数,首先将整个数组传递给它,然后循环它,如果它的数组再次调用同一函数,则检查您正在访问的元素是数组还是数字,否则如果它的数字只是打印出来的,则只传递这个元素

即使您不知道有多少个嵌套数组,这也有效,否则请使用MWO答案

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);
方梓
2023-03-14

例如,使用Array.prototype.flat(),。平面(2)展平到2个数组深的水平。

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

console.log(myArray.flat(2));
   
 类似资料:
  • 我试图弄清楚嵌套for循环是如何与JavaScipt中的多维数组一起工作的,但有一点让我有些困惑。以股票为例 这就是我所期望的结果123456。但是,如果我将数字添加到外部数组的末尾: 我仍然得到同样的输出1 2 3 4 5 6?我不明白为什么 输出是一个bcdyz,这是我所期望的。为什么字符串的行为会有所不同?

  • 并分别处理这两个数组。这是更好的解决方案吗?

  • 使用嵌套循环 我仍在努力实现上述问题所述的目标。基本上我的代码现在是这样的: 这很烦人,我不明白为什么会这样! 我想计算地球因太阳和月亮而产生的加速度。所以我有双[]行星质量={earthMass,sunMass,moonMass},一系列粒子物体粒子[]行星={earth,sun,moon}和一系列由于重力而产生的加速度,它们还没有被计算出来:物理矢量[]gravField={earthGrav

  • 对Java来说很新鲜,我在大学的一个入门班做一个项目。我正在尝试做一个方法,在String数组中搜索输入的状态并返回索引。如果用户输入不在数组中的查询,我希望它要求一个新的状态来搜索。我的例外是说“变量statePotion可能尚未初始化。”下面是代码。 提前谢谢!

  • 问题内容: 我有一个这样的多维数组: 我想这样的html输出: - 活动1 艺术家1 艺术家1 desc http : //www.artist1.com,http://www.artist1-2.com ARTIST 8 artist 8 desc http://www.artist8.com ARTIST 5 artist 5 desc http://www.artist5.com - 活动2

  • 数据库表: 胶片(id\U胶片主键,名称) 流派(id_genrePK,名称) film_genre(id_filmFK,id_genreFK) 这将输出流派表中的所有流派: 这将输出特定电影的电影类型表中的所有选定类型: 我有一个问题,从数据库输出数据到多个选定的列表中的形式。这是一个电影数据库,我正在进行Foreach迭代,以读取电影流派的所有行,并输出到多个选择字段。但是我在向列表输出“选定