Estoy desarrollando un programa en el que un usuario pasará un argumento y el programa dará casi la misma coincidencia del resultado que encontrará en una matriz de Objeto. Entonces, tengo una matriz de objetos que proviene de una base de database , de modo que cuando mi usuario pase un name , los criterios de búsqueda en la matriz de objetos deberían funcionar de la siguiente manera. Supongamos que el usuario ha pasado un nombre llamado Jack Ma ahora en mi matriz hay siguiendo objetos como
[ { name: "Jacky Ma" }, { name: "Jacky Man" }, { name: "Jack Mun" }, { name: "Jacob Ma" }, { name: "Jack Ma" } ] entonces, para este caso siguiente, Jacky Ma , Jack Mun , Jacob Ma deberían volver a sintonizarse en una matriz de objetos. Lo único que el programa debe verificar es que la ortografía de cada palabra coincida con la ortografía de las palabras que están en el objeto lowerCase upperCase . No importa aquí para ambas palabras o si hay una o más de 2. Lo único que debe verificar es la ortografía de las palabras si la ortografía de la primera palabra coincide con la ortografía de la primera palabra o la ortografía de la segunda palabra coincide con la segunda palabra del objeto solo entonces debería regresar. Si ninguno o uno no coinciden, debería devolver una matriz vacía.
¿alguien puede ayudarme como puedo hacer esto? Gracias de antemano.
En su código actual, está comparando toda la cadena "Jack Ma" y no "Jack" y "Ma". Debe dividir la propiedad del nombre y la cadena, recorrerlos y comparar:
const filterData = searchClan.items.filter( n => { const splittedName = n.name.toLowerCase().split(' '); const splittedArgs = validateArgs.toLowerCase().split(' '); return splittedArgs.some((argument, index) => splittedName[index] && splittedName[index] === argument) });El método "some" devuelve verdadero si uno de los elementos (en el índice "index") en la matriz splittedArgs coincide con el elemento en el índice "index" en la matriz splittedName.