我有一个显示为标签的元素数组。例如:
data2=[[[1],[2],[3]],[[4],[5],[6]]]
显示为==> apple 香蕉 菠萝 葡萄
是我拥有的数组。
对于 TextInput ["apple","banana","pineapple","grape"]
,将使用输入的文本启动去抖动的套接字调用,在处理之后,我将获得与传递的文本匹配的元素数组。
例如,我将从websocket响应中获取onChangeText
,它应显示为标签中的===>
苹果 香蕉 菠萝 葡萄
突出显示苹果和香蕉。
如何实施?
-更新--- 这是我的数组的样子
["apple","banana"]
答案 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>