[英]Check if elements of 2D array have equal values at equal indices
我想檢查給定2D數組的元素在具有相同下標或索引的索引處是否具有相等的值。
例如,給定一個數組;
var arr = [[1,0,1],[1,1,1],[1,1,0]]
這里,對於相同的索引0
, arr[0][0]
, arr[1][0]
和arr[2][0]
相等。
同樣,我想檢查其他所有具有相同“行”或相同“列”(或兩者)的元素。 我該如何實現?
我嘗試遍歷數組,檢查三個連續的元素,但是它返回TypeError
因為對於循環下的所有元素而言,后繼或先前的元素都不存在。
假設是3x3
陣列,這就是我要做的;
var arr = [[1,0,1],[1,1,1],[1,1,0]]; for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if ((arr[i][j] == arr[i - 1][j] == arr[i - 2][j]) == 1) { //do something } } }
輸出:
"message": "TypeError: arr[(i - 1)] is undefined",
"filename": "https://stacksnippets.net/js",
"lineno": 16,
"colno": 9
您可以采用兩個嵌套循環,並檢查相同的行或列是否包含相同的值。
var array = [[1, 0, 1], [1, 1, 1], [1, 1, 0]], cols = array.map((a, i, outer) => a.every((v, j) => outer[0][j] === v)), rows = array.map((a, i) => a.every((v, j, inner) => inner[0] === v)); array.forEach(a => console.log(...a)); console.log('cols', ...cols); console.log('rows', ...rows);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.