javascript - 搜索大量数组

标签 javascript jquery

嘿,我正在分别搜索每个数组以获取用户的特定输入。

if ($.inArray(i.val(), helloInputArray) > -1) { //IF HELLO
                    if (hello == 0) { //HAVE YOU ALREADY SAID HI?
                        r = Math.floor(Math.random()*4);                        
                        o.html(o.html()+helloOutputArray[r]);
                        hello = 1;
                        i.val('');
                    } else { //IF YOU'VE ALREADY SAID HI...
                        o.html(o.html()+'I already said hi to you!<br />');
                        i.val('');
                    }
                } else if ($.inArray(i.val(), byeInputArray) > -1) { //IF GOODBYE
                    if (bye == 0) {
                        r = Math.floor(Math.random()*4);                        
                        o.html(o.html()+byeOutputArray[r]);
                        i.val('');
                    } else {
                        o.html(o.html()+'I already said goodbye... Go away!');
                        i.val('');
                    }
                }

有什么方法可以一次搜索所有数组,因为我需要在每个数组中搜索一个字符串。

咳咳

所以 - 如果我输入“ae”,那么我希望它遍历每个数组中的每个项目并返回其中包含“ae”的所有字符串。

^_^ <(措辞不当...)

最佳答案

如果我没理解错的话,您想将单独的数组合并为一个以执行一个循环,但又不想修改原始数组。

如果是这样,试试这个:

if( $.inArray( i.val(), helloInputArray.concat( byeOutputArray) ) > -1 ) {
    ...

The .concat() method将创建连接在一起的两个数组的副本,因此不会修改原件。该副本作为第二个参数传递给 $.inArray() 方法。


编辑:

从您下面的评论来看,您似乎想测试 i.val() 是否是数组中任何项目的子字符串。

如果是这样,您可能不会使用 $.inArray,而是使用 $.each() 来迭代数组,并测试值(value)。

var isInArray = false;
var value = i.val();

$.each( helloInputArray.concat(byeOutputArray), function(i,val) {
    if( val.indexOf( value ) > -1 ) {
        isInArray = true;
        return false;
    }
});

if ( isInArray ) > -1) { 
    if (hello == 0) { 
        r = Math.floor(Math.random()*4);                        
        o.html(o.html()+helloOutputArray[r]);
      ...

关于javascript - 搜索大量数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3718690/

相关文章:

javascript - 使用 DataTables 在服务器端模式下具有单独搜索输入的多个表

javascript - 如何使用API​​ V3获取chanel封面?

javascript - 搜索 Html 表格并在不刷新的情况下显示结果

javascript - 如何拆分 Ajax 帖子的成功输出?

javascript - Karma 错误 : [$injector:modulerr] Failed to instantiate module due to: (Index. html 工作正常)

javascript - Docker - 为什么这个 express.js 容器带有暴露/发布的端口拒绝连接? (使用 boot2docker)

javascript - Ionic 3 - Pan 事件在手机上丢失 "target"

javascript - 为什么主体上的事件在特定元素上的事件之前调用?

javascript - 在 CSS 网格布局中填充空单元格

javascript - html-5 范围 slider 最大值和最小值