繁体   English   中英

在JavaScript中使用嵌套循环遍历数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM