Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
el filtrado a través de una matriz de cadenas no incluye el primer carácter

Tengo una barra de búsqueda que filtra a través de una matriz que contiene un objeto:

 const [termList, setTermList] = useState([{term_name: 'Name', definition: 'This is a glossary term'}]); const filtered = termList.filter((term) => Object.values(term).some( (val) => typeof val === "string" && term.term_name.includes(searched.toLowerCase()) ) ); return ( <div> <input type="text" value={searched} onChange={(ev) => setSearched(ev.target.value)} /> </div> <div className="termList"> {filtered.map((term) => ( <div> <div>{term.term_name.toLowerCase()}</div> <div>{term.definition} </div> ))} </div> );

Sin embargo, cuando filtro a través de la lista, si escribo en la barra de búsqueda la letra 'n', mi lista filtrada está vacía aunque el único objeto dentro de la matriz tiene un nombre que comienza con una 'n'.

Aún más extraño es que cuando escribo en la barra de búsqueda 'a', 'am' o 'ame', mi lista filtrada incluye el objeto.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Está searched minúsculas pero no term.term_name , 'n' no está en 'Name', 'N' está. Necesitas hacer

 term.term_name.toLowerCase().includes(searched.toLowerCase())
about 4 years ago · Juan Pablo Isaza Relatório

0

también puedes hacer esto, en lugar de hacer una función filtered

 const [termList, setTermList] = useState([{term_name: 'Name', definition: 'This is a glossary term'}]); return ( <div> <input type="text" value={searched} onChange={(ev) => setSearched(ev.target.value)} /> </div> <div className="termList"> {termList.filter(item => (search ? item.term_name?.toLowerCase().includes(searched.toLowerCase()) : true)).map((term) => ( <div> <div>{term.term_name.toLowerCase()}</div> <div>{term.definition} </div> ))} </div> );
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda