[英]traversing through an array with nested loops in javascript
直到最近,我才真正了解多维数组以及如何遍历它们。
到目前为止,我已经弄清楚了如何水平,垂直和对角地自动遍历2D数组,而无需在简单函数上对任何数字进行硬编码,以帮助我更好地理解嵌套循环。
数组是用所有可能的序列创建的,但是我似乎无法概念化如何遍历和遍历右边的对角线(3,5,7)。
有指针吗?
有没有更聪明的方式来做这些事情?
const grid = [ [1,2,3], [4,5,6], [7,8,9] ] const coordinates = grid => { const arr = []; // get horizontals for (let i = 0; i < grid.length; i++) { for (let j = 0; j < grid.length; j++) { arr.push(grid[i][j]); // horizontals // grid[i][j] // grid[0][0] // grid[0][1] // grid[0][2] // grid[1][0] // grid[1][1] // grid[1][2] // grid[2][0] // grid[2][1] // grid[2][2] } } // get verticals for (let i = 0; i < grid.length; i++) { for (let j = 0; j < grid.length; j++) { arr.push(grid[j][i]); // verticals // grid[j][i] // grid[0][0] // grid[1][0] // grid[2][0] // grid[0][1] // grid[1][1] // grid[2][1] // grid[0][2] // grid[1][2] // grid[2][2] } } for (let i = 0; i < grid.length; i++) { for (let j = 0; j < grid.length; j++) { if (i === j) arr.push(grid[i][j]) // grid[0][0] // grid[1][1] // grid[2][2] } } console.log(arr) } coordinates(grid);
这将适用于诊断。
for (let i = 0; i < grid.length; i++) {
// grid[i][i]
}
您可以使用grid.length-1-i遍历4个对角线以获取各种索引。
// grid[grid.length-1-i][i] // etc...
这会给你3,5,7
// grid[i][grid.length-1-i] // etc...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.