簡體   English   中英

嵌套數組:如何正確使用 && 運算符來跳過一些循環?

[英]Nested Array: How to use && operator properly to skip some loops?

我試圖從嵌套數組中取出一個“沙漏”數組。

說這個數組是

1 1 1 0 0 0
0 1 0 0 0 0
1 1 1 0 0 0

我必須取出這個“沙漏”數組並將其全部加起來:

1 1 1
  1
1 1 1

因此,這是我的嘗試:

for (let i = 0; i < 3; i++) {
    for (let j = 0; j < 3; j++) {
        if ((i === 1 && j === 0) && (i === 1 && j === 2)) {
            continue;
        } else {
            newArr.push(arr[i][j]);
        }
    }
}

我注意到如果我使用這個條件: i === 1 && j === 0 ,它能夠在i = 1j = 0處跳過 position 但是當我添加j = 2時,我無法得到它跳過第一個和第三個位置。 因此,我嘗試了各種選擇來讓它工作,但我無法讓它工作。 這樣,我想知道我是否正確地使用&& operator

您可以為零 (0) 和一 (1) 添加空格,或者任何其他數字只是累積它們;

 const arr = [ [1, 1, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0], ] let printRow = ''; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { if (arr[i][j] === 0) { printRow += ' '; } else { printRow += arr[i][j]; } } console.log(printRow); printRow = ''; }

解決方案

查找此網格中的每個沙漏3 行 6 列網格,只有一個循環
注意:當 Grid 變大時,您必須使用內部 for 循環

 const arr = [ [1, 1, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0], ] // format is [row][column] let result; let topp; let mid; let bottom; for (let i = 0; i < 4; i++) { // this ist the filter defining what we are looking for if (arr[0][i] === 1 && arr[0][i+1] === 1 && arr[0][i + 2] === 1 && arr[1][i] === 0 && arr[1][i+1] === 1 && arr[1][i + 2] === 0 && arr[2][i] === 1 && arr[2][i+1] === 1 && arr[2][i + 2] === 1) { // here we build the string topp = arr[0][i] + " " + arr[0][i+1] + " " + arr[0][i+2]; mid = arr[1][i] + " " + arr[1][i+1] + " " + arr[1][i+2]; bottom = arr[2][i] + " " + arr[2][i+1] + " " + arr[2][i + 2]; result = topp + "\n" + mid + "\n" + bottom; } } console.log(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM