Estoy haciendo una barra de búsqueda simple en reaccionar nativo
Tengo algunos NftData ficticios que se ven así:
[ { name: "Lorem ipsum", ... }, { name: "dolor sit amet", ... }, { name: "consectetur adipiscing", ... }, { name: "elementum dolor", ... }, { name: "sapien eu porttitor", ... }, ]
Tengo una función handleSearch()
que compara la entrada del usuario con los nombres en la lista:
const handleSearch = (value) => { const filteredData = NFTData.filter((item) => { item.name.toLowerCase().includes(value.toLowerCase()); }); console.log(filteredData); }; //Return an empty array no matter what value the user inputted
Pero si mapeo la matriz y verifico exactamente la misma condición, funciona perfectamente bien:
const handleSearch = (value) => { let filteredData2 = []; NFTData.map((item) => { if (item.name.toLowerCase().includes(value.toLowerCase())) { filteredData2.push(item.name); } }); console.log(filteredData2); }; // For user input "lor" return ["Lorem ipsum", "dolor sit amet", etc ...]
Incluso si mi aplicación ahora funciona bien, me pregunto qué hice mal con mi función .filter