React Native - Как мне найти, совпадает ли одно из значений в массиве с одним из значений в другом массиве? - PullRequest
0 голосов
/ 24 мая 2018

Я нашел и опробовал .includes, чтобы помочь с этой проблемой.Но .includes не сработало, как я хотел.На самом деле он нашел, какое значение в массиве соответствует значению в другом массиве, но он сопоставил только аналогичные значения :

result_postid результаты сопоставлены с запятыми :

[10,22,12,36,45,206]

item.id результаты отображаются с запятыми :

[5,13,28,136,400,538]

Я пытался выяснить, почему некоторые значения продолжали возвращаться true, когда они должны быть четкоfalse.Затем я пришел к выводу, что .includes фактически берет 36 из result_postid и сопоставляет его с 136 в item.id.Вот как я устанавливаю оператор if с помощью .includes:

{result_postid.includes(item.id) ?
 <Text>True</Text>
 :
 <Text>False</Text>
}

Это результат:

result_postid | item.id | Result

10 != 5,13,28,136,400,538: False
22 != 5,13,28,136,400,538: False
12 != 5,13,28,136,400,538: False
36 =  5,13,28,136,400,538: True <--- this should be false
45 != 5,13,28,136,400,538: False
206 != 5,13,28,136,400,538: False

Можно ли найти точно одно из значений в массиве?соответствует одному из значений в другом массиве?

Вот как выглядит мой result_postid до того, как я map it:

render() {

const result_postid = this.state.data_one.map(function(val) {
 return val.postid;
}).join(',');
}

[{"spaceid":"16","postid":"10"},{"spaceid":"16","postid":"22"},{"spaceid":"16","postid":"12"},{"spaceid":"16","postid":"36"},{"spaceid":"16","postid":"45"},{"spaceid":"16","postid":"206"}]

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете использовать .some и .findIndex для достижения того же

const postId = [10,22,12,36,45,206]
const itemId = [5,13,28,136,400,538]
const res = postId.some(id => itemId.findIndex(elem => elem === id) > -1);
console.log(res)

для рендеринга pupose

render() {
   const isPresent = result_postid.some(id => item_id.findIndex(elem => elem === id) > -1);
   return (
      <View>
          {isPresent? <Text>True</Text>:<Text>False</Text>}
      </View>
   )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...