[英]Working with bidimensional arrays in JavaScript to detect repeated values
我一直在研究一個使用以下 JavaScript 代碼按字母編號檢測重復的示例。
但它不起作用。 這個想法是它檢測到組合 A-1 是重復的; 使用控制矩陣。
這是 JSON 結構的項目:
{
letter: 'A',
number: '1',
},
{
letter: 'B',
number: '2',
},
{
letter: 'A',
number: '1',
},
{
letter: 'C',
number: '2',
},
這是我想要的代碼:
var isRepeated = false;
var numItems = items.length;
if (numItems > 0) {
var item;
var letter;
var number;
var matrix = [[]];
for (var j = 0; j < numItems; j++) {
item = items[j];
letter = item.letter;
number = item.number;
if (matrix[letter][number] == undefined) {
matrix[letter][number] = true;
} else {
isRepeated = true;
break;
}
}
}
matrix[letter][number]
您正在嘗試使用字符串鍵訪問數組元素,但 arrays 使用 integer 索引
如果您只想知道某事是否重復,這是另一種選擇
const props = [{ letter: 'A', number: '1', }, { letter: 'B', number: '2', }, { letter: 'A', number: '1', }, { letter: 'C', number: '2', }, ] const didRepeat = (array) => array.some(((hash) => ({letter, number}) => { const key = `${letter}_${number}`; if (hash.has(key)) return true; return hash.add(key), false; })(new Set())) console.log(didRepeat(props))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.