繁体   English   中英

使用 JavaScript 中的二维 arrays 检测重复值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM