搜索功能返回多个结果

时间:2014-10-09 16:33:51

标签: javascript

我目前正在尝试创建一个搜索函数,在数组中搜索字符串,并返回数组中与字符串匹配的位置索引。

例如:

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=

但我想让它返回多个结果

3 个答案:

答案 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 />");