簡體   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