Maison  >  Questions et réponses  >  le corps du texte

Comment utiliser la barre de recherche avec deux valeurs différentes ?

J'ai essayé d'ajouter une autre valeur (organisation.name) à la barre de recherche qui fonctionnait déjà avec succès, afin de non seulement filtrer la liste des termes de recherche de l'organisation.topic. Mais il ne l'a pas ajouté..

const filteredOrganizations = context.allOrganizations.filter((organization) => (organization.topic.searchTerms
        .map((term) => term.toLowerCase())
        .join(" ") ||
        organization.name)
        .includes(searchText.toLowerCase()))

Voici la partie pertinente de mon retour :

<TableBody>
                            {filteredOrganizations.map((organization) => (

                                <StyledTableRow key={organization.id}>
...

J'espère que vous avez des idées

P粉238433862P粉238433862430 Il y a quelques jours441

répondre à tous(2)je répondrai

  • P粉745412116

    P粉7454121162023-09-08 11:29:47

    N'utilisez pas || car vous souhaitez également vérifier le nom de l'organisation. Concaténez simplement les chaînes

    const filteredOrganizations = context.allOrganizations.filter(organization => 
    (
      organization.topic.searchTerms
        .map(term => term.toLowerCase()).join(' ')
        + ' ' + organization.name
    )
    .includes(searchText.toLowerCase()))

    répondre
    0
  • P粉083785014

    P粉0837850142023-09-08 09:42:26

    Voici la solution :

    const filteredOrganizations = context.allOrganizations.filter(organization => {
            const searchTerms = organization.topic.searchTerms.map(term => term.toLowerCase()).join(" ");
            const organizationName = organization.name.toLowerCase();
            const searchString = `${searchTerms} ${organizationName}`;
    
            return searchString.includes(searchText.toLowerCase());
        });
    

    répondre
    0
  • Annulerrépondre