[英]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 = 1
和j = 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.