Quiero comparar 2 matrices y verificar si el valor de 3 índices dados es común entre las 2 matrices. es decir:
arr1 = [1,2,1,0,0,0,2,2,2] arr2 = [0,0,0,0,0,0,2,2,2]o
arr1 = [1,2,3,0,1,2,4,2,1] arr2 = [1,0,0,0,1,0,0,0,1]1er ejemplo aquí los últimos 3 índices son comunes. Segundo ejemplo aquí, los índices 0,4,8 son comunes.
¿Hay algún método que pueda tomar las 2 matrices y devolver verdadero si los índices coinciden?
Es muy simple
const equal = (a1, a2, ...indexes) => indexes.every(i => a1[i] === a2[i]);Lo que estoy haciendo aquí es declarar una función que toma la primera matriz como el primer argumento y la segunda matriz como los segundos parámetros, ahora el tercer argumento básicamente agrupa todos los parámetros restantes.
Llamarías a esta función como:
equal([0, 2, 4, 6], [0, 1, 3, 6], 0, 3);Y esto volverá verdad
Algo como esto:
const arr1 = [1,2,3,0,1,2,4,2,1] const arr2 = [1,0,0,0,1,0,0,0,1] const indexes = arr1.reduce((accumulator, current, index) => { if (arr2[index] === current) { accumulator.push(index) } return accumulator }, []) console.log(indexes) // Outputs : [0,3,4,8]