我有一个数组,根据用户在搜索框中输入的内容进行过滤。
var x = ["Apple","Pear","Pineapple"];
var value = e.target.value;
var regex = new RegExp(`^${value}`, 'i');
var filtered = x.sort().filter(v => regex.test(v));
如果我在搜索框中输入“P”,控制台会打印出以下内容。
["Pear","Pineapple"]
然而我需要的是另一个数组,其中包含Pear和Pineapple的原始索引位置,输出结果如下:
[1,2]
我该如何实现这个目标?
var indices = filtered.map(f => x.indexOf(f));
?因为你在x
中保留了原始未修改的数组的副本。 - nbokmanskeys
而不是values
。 - jank