Posteriormente a buscar en diferentes repositorios y páginas webs finalmente hemos hallado la respuesta que te enseñamos aquí.
Solución:
Dos cosas, primero, Array.find()
devolver el primer elemento coincidente, undefined
si no encuentra nada. Array.filter
devuelve un nuevo array que contiene todos los elementos coincidentes, []
si no coincide con nada.
Lo segundo, si quieres emparejar 4,5
tienes que mirar en el string y no haga una comparación estricta. Para hacer que eso suceda usamos de indexOf
que está devolviendo la posición de la coincidencia stringo -1
si no coincide con nada.
Ejemplo :
const arr = [
name: 'string 1',
arrayWithvalue: '1,2',
other: 'that',
,
name: 'string 2',
arrayWithvalue: '2',
other: 'that',
,
name: 'string 2',
arrayWithvalue: '2,3',
other: 'that',
,
name: 'string 2',
arrayWithvalue: '4,5',
other: 'that',
,
name: 'string 2',
arrayWithvalue: '4',
other: 'that',
,
];
const items = arr.filter(item => item.arrayWithvalue.indexOf('4') !== -1);
console.log(items);
Usar array método de filtro Me gusta
arr.filter(res => res.arrayWithvalue.indexOf('4') !== -1);
Necesitas usar el filter
método en lugar de find
. Esto devolverá un nuevo array que contiene solo los miembros que devuelven un valor verdadero de la función pasada.
Si te gustó nuestro trabajo, puedes dejar un escrito acerca de qué le añadirías a esta noticia.