Tengo dos matrices y quiero hacerlas coincidir parcialmente (es decir, algunos elementos de la primera matriz deben estar presentes en la segunda matriz, pero no todos). Tengo una solución, pero siento que podría usar una más eficiente. Aquí está el caso de uso:
const array_1 = [ 7, 6 ]; const array_2 = [ 4, 6 ,7, 2, 9 ]; const isSomeItemMatched = array_1.some( item => array_2.includes(item) ); const isAllItemMatched = array_1.every( item => array_2.includes(item) ); const isPartiallyMatched = !isAllItemMatched && isSomeItemMatched;Por favor, hágame saber si hay una forma optimizada de hacerlo.
Su solución está bien para arreglos pequeños. Si se hacen más grandes, se beneficiará al convertir uno en un conjunto:
const array_1 = [ 7, 6 ]; const array_2 = [ 4, 6 ,7, 2, 9 ]; function isPartialMatch(a, b) { const setA = new Set(a); return b.some(x => setA.has(x)) && b.some(x => !setA.has(x)); } console.log(isPartialMatch(array_1, array_2));