搜索功能返回多个结果

Search function return multiple results

本文关键字:结果 返回 功能 搜索      更新时间:2023-09-26

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

例如:

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=

但我希望它返回多个结果

如果您编写自己的函数,您应该能够返回一个索引数组:

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(', ');

我不确定这是否是你想要的,但如果你想从DOM中返回带有给定选择器的所有对象(而不是对过滤后的javascript数组执行操作并返回),那么你可以使用document.querySelectorAll(<your_selector_here>)-MDN的更多信息

您可以执行此

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