Карта или / и фильтр для выбора элементов в React - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть код, который работает почти нормально. Почти, потому что мне нужно получить все объекты, где представлены Джо , но я получаю либо два, либо один, в зависимости от того, какой из qoute.fields.user / qoute.fields.company является первым. Итак, это мои данные, которые выглядят примерно так:

{
 id:1;
 user: joe;
 company: foo
},
{
 id:2;
 user: foo;
 company: joe
},
{
 id:3;
 user: joe;
 company: foo2
}

Если я выполню эту часть

const user = "joe";

const qoutes = this.state.qoutes.map((qoute, i) => 
user === qoute.fields.user && qoute.fields.company ? 
<ListItem id={i} key={i} qoute={qoute} />
: null)

, я получу id: 1 и id: 3. Если я изменю эту часть и поставлю сначала компанию следующим образом:

 user === qoute.fields.company && qoute.fields.user ? 

Я получу идентификатор: 2

Что я должен сделать, чтобы получить все три идентификатора. (id: 1, id: 2, id: 3) Все эти объекты имеют Джо. Я знаю, что это, вероятно, простое решение, но я застрял с ним) Есть предложения?

1 Ответ

1 голос
/ 22 апреля 2020

Что вы делаете в псевдокоде:

if user = 'joe' and company is not null (return 1,3)

if company = 'joe' and user is not null (return 2)

Проверьте пользователя и компанию и объедините их с ИЛИ || вместо И &&:

const qoutes = this.state.qoutes.map((qoute, i) => 
user === qoute.fields.user || user === qoute.fields.company ? 
<ListItem id={i} key={i} qoute={qoute} />
: null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...