如何水平遍历这个3x3的数组网格并打印出1,4,7,2,5,8,3,6,9?
编辑:除了使用两个循环,如果数组的长度不等于其他数组,有没有更有效的方法?
let grid = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
发布于 2018-10-06 23:01:12
您可以使用嵌套的for
循环:
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]);
}
发布于 2018-10-06 23:06:18
如果数组的长度都相同,你会得到很多有效的答案。这里有一种方法来处理可能不同长度的数组。它基本上一直运行,直到找不到更多的数据:
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++
}
发布于 2018-10-06 22:59:46
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]);
}
}
https://stackoverflow.com/questions/52680256
复制相似问题