簡體   English   中英

檢查2D數組的元素在相等索引處是否具有相等的值

[英]Check if elements of 2D array have equal values at equal indices

我想檢查給定2D數組的元素在具有相同下標或索引的索引處是否具有相等的值。

例如,給定一個數組;

var arr = [[1,0,1],[1,1,1],[1,1,0]]

這里,對於相同的索引0arr[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.

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