He estado trabajando en un ejemplo que detecta repeticiones por letra-número con el siguiente código JavaScript.
Pero no está funcionando. La idea es que detecte que se repite la combinación A-1; utilizando una matriz de control.
Esta es la estructura JSON de los elementos:
{ letter: 'A', number: '1', }, { letter: 'B', number: '2', }, { letter: 'A', number: '1', }, { letter: 'C', number: '2', },Y este es el código que estoy tratando de:
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]Está tratando de acceder a elementos de una matriz usando claves de cadena, pero las matrices usan índices enteros
Aquí hay una alternativa si solo quieres saber si algo se repite
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))