首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >水平循环二维数组- javascript

水平循环二维数组- javascript
EN

Stack Overflow用户
提问于 2018-10-06 22:53:29
回答 8查看 421关注 0票数 0

如何水平遍历这个3x3的数组网格并打印出1,4,7,2,5,8,3,6,9?

编辑:除了使用两个循环,如果数组的长度不等于其他数组,有没有更有效的方法?

代码语言:javascript
运行
复制
let grid = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

EN

回答 8

Stack Overflow用户

发布于 2018-10-06 23:01:12

您可以使用嵌套的for循环:

代码语言:javascript
运行
复制
let grid = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];
for(let i = 0; i < grid[0].length; i++){
  for(let j = 0; j < grid.length; j++)
    console.log(grid[j][i]);
}

票数 3
EN

Stack Overflow用户

发布于 2018-10-06 23:06:18

如果数组的长度都相同,你会得到很多有效的答案。这里有一种方法来处理可能不同长度的数组。它基本上一直运行,直到找不到更多的数据:

代码语言:javascript
运行
复制
let grid = [
    [1, 2, 3, 4, 5],
    [4, 5, 6, 7],
    [7, 8, 9, 10, 11, 12]
  ];

let current = grid, i = 0
while(current.length){
    current = grid.filter(arr => i < arr.length)
    current.forEach(arr =>  console.log(arr[i]))
    i++
}

票数 2
EN

Stack Overflow用户

发布于 2018-10-06 22:59:46

代码语言:javascript
运行
复制
for(var i = 0; i < grid.length; i++) {
    var arr = grid[i];
    for(var j = 0; j < arr.length; j++) {
        console.log("array[" + i + "][" + j + "] = " + arr[j]);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52680256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档