Я нашел и опробовал .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"}]