检查一个数组是否包含另一个数组的任何元素,并突出显示另一个数组中的元素-React native

时间:2019-11-14 16:17:51

标签: javascript arrays react-native

我有一个显示为标签的元素数组。例如:

data2=[[[1],[2],[3]],[[4],[5],[6]]]

显示为==> apple 香蕉 菠萝 葡萄

是我拥有的数组。

对于 TextInput ["apple","banana","pineapple","grape"] ,将使用输入的文本启动去抖动的套接字调用,在处理之后,我将获得与传递的文本匹配的元素数组。

例如,我将从websocket响应中获取onChangeText,它应显示为标签中的===> 苹果 香蕉 菠萝 葡萄

突出显示苹果香蕉

如何实施?

-更新--- 这是我的数组的样子

["apple","banana"]

2 个答案:

答案 0 :(得分:2)

您可能会找到接收到的元素出现在原始数组中的所有索引,然后对找到的索引进行处理

var originalArray = ["apple","banana","pineapple","grape"];
var receivedArray = ["apple", "banana"];
var foundIndices = originalArray.map(el => receivedArray.includes(el) ? true : false)
// Highlight copy version of originalArray based on foundIndices

答案 1 :(得分:1)

也许在for(甚至是includes)中使用indexOf循环:

function dothing(){
  let mainarr=main.value.split(",");
  let filtarr=filter.value.split(",");
  for(var i=0;i<mainarr.length;i++)
    if(filtarr.includes(mainarr[i]))
      mainarr[i]="<i><b>"+mainarr[i]+"</b></i>";
  log.innerHTML=mainarr.join(" ");
}
dothing();
<input type="text" id="main" oninput="dothing()" value="a,b,c"><br>
<input type="text" id="filter" oninput="dothing()" value="a,b"><br>
<div id="log"></div>