JavaScript:搜索数组数量的用户输入

时间:2015-09-24 13:31:15

标签: javascript arrays

我正在使用D3js库。在网页上,有一个搜索框,用户可以输入他们的参数。我通过Ajax发送数据到我的数据库。以下是代码:

..........
var aa;
var bb;
$(function(){
$.ajax({
    type: "POST",
    url: "http://localhost:7474/db/data/transaction/commit",
    accepts: {json: "application/json"},
    dataType: "json",
    contentType: "application/json",
    data: JSON.stringify(query), //query is somewhere above the code
    //pass a callback to success to do something with the data
    success: function (data) {
        aa = data.results[0].data;
        aa.forEach(function (entry) {
             passVar(entry.row[0].name)
        });}}
    );
});

function passVar(smth){
    bb =[smth];
    console.log (bb);
    //Should search the user input..........
    }
//if the user input matches, filter function should run.........
function filterData() {
    var value = d3.select("#constraint")[0][0].value;

    inputValue = value;

    ............
}

作为console.log(bb)的结果,我在控制台上收到以下内容:

["Direct Digital Control System"]
["Fire Protection"]
["HVAC Cooling- Waterside"]
["HVAC Heating- Waterside"]
["HVAC System"]
["HVAC-01"]
["HVAC-02"]

我想做什么: 如果用户输入与var bb中的一个结果匹配,则程序应运行function filterdata() {....进行查询。如果没有,请不要做任何事情。

我应该如何编写代码来进行搜索并运行其他功能?感谢您的任何帮助/建议。

1 个答案:

答案 0 :(得分:1)

您可以遍历数组并查找用户输入是否等于数组的当前索引值。如果等于你可以调用你的函数并打破循环,因为不需要循环更多。

for(int i=0; i<bb.length; i++){

    If(bb[i] == userInput){

        filterdata();

        break;

    }

}