我目前正在尝试创建一个搜索函数,在数组中搜索字符串,并返回数组中与字符串匹配的位置索引。
例如:
Array: [1,2,3,4,5,2,3,1,6,5,2]
Search input: 3
Output:
2
6
Search input: 2
Output:
1
5
10
目前我只使用
输出1个值document.getElementById("result").innerHTML=
但我想让它返回多个结果
答案 0 :(得分:2)
如果您编写自己的函数,则应该能够return an array个索引:
function indicesOf(input, value) {
var indices = new Array();
for (var i = 0; i < input.length; i++) {
if (input[i] == value)
indices.push(i);
}
return indices;
}
然后你可以组合数组值并将它们放入结果位置,如@AnthonyGrist所建议的那样:
document.getElementById('result').innerHTML = indicesOf(input, value).join(', ');
答案 1 :(得分:0)
我不确定这是你所追求的,但如果你想从DOM返回所有具有给定选择器的对象(而不是处理并返回已过滤的javascript数组),那么你可以使用{{1} } - more information at MDN here
答案 2 :(得分:0)
你可以这样做
var arr = [1,2,3,4,5,2,3,1,6,5,2];
arr.map(function(x, i){
return x == 3 ? i : null;
}).filter(Number); // get indexes
以上地图并过滤掉了索引。那么这只是加入它的问题
document.getElementById("result").innerHTML= arr.join("<br />");