JavaScript:在数组数量中搜索用户输入

标签 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() {.... 进行查询。如果没有,请不要做任何事情。

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

最佳答案

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

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

    if(bb[i] == userInput){

        filterdata();

        break;

    }

}

关于JavaScript:在数组数量中搜索用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32762709/

相关文章:

javascript - 如何从 TypeScript 中的拆分字符串数组创建/合并对象?

arrays - 对数组索引使用 switch/case

javascript - 将 javascript 字典转换为要在 jquery.params 中传递的数组/对象

javascript - 从两个数组中返回唯一元素

javascript - 选择今天之前的日期并禁用 CodeIgniter 中的所有 future 日期

javascript - 如何使用 jQuery 一次选中两个复选框

javascript - 组数组对象

javascript - JS 和 CSS 居中幻灯片图像

javascript - 测试 HTML5 网站的最佳方法是什么?

c++ - 字符串数组的二进制搜索和额外功能