Tengo dos matrices, la matriz A tiene una lista de elementos que pueden o no contener un elemento de la matriz B. Quiero filtrar la matriz A para que solo contenga elementos donde contenga al menos un elemento de la matriz B.
const a = [ 'cqAWS1x2', 'cqAM1c', 'cqA10a + cqA10b', 'cqA10axZAF + cqA10bxZAF'] const b = [ 'cqAWS1x2', 'cqA10a', 'cqA10axZAF']Quiero filtrar un para que sea
['cqAWS1x2', 'cqA10a + cqA10b', 'cqA10axZAF + cqA10bxZAF'] 'cqAWS1x2' porque Array b contiene ese elemento, 'cqA10a + cqA10b' porque b contiene 'cqA10a' que es parte de 'cqA10a + cqA10b' . Lo mismo para 'cqA10axZAF + cqA10bxZAF' , porque b contiene 'cqA10axZAF'.
Esto es lo que tengo hasta ahora:
a.filter(avc => b.some(bvc => bvc.includes(avc))) En el resultado, obtengo solo ['cqAWS1x2'] pero no 'cqA10a + cqA10b' y 'cqA10axZAF + cqA10bxZAF' .
¡Gracias por toda la ayuda!
Solo necesita cambiar avc y bvc en su llamada include includes() ( avc es la cadena más larga, verifique si incluye el bvc más corto).
const a = ['cqAWS1x2', 'cqAM1c', 'cqA10a + cqA10b', 'cqA10axZAF + cqA10bxZAF']; const b = ['cqAWS1x2', 'cqA10a', 'cqA10axZAF']; console.log(a.filter((avc) => b.some((bvc) => avc.includes(bvc))));