Javascript 搜索多个数组

Javascript 搜索多个数组,javascript,jquery,Javascript,Jquery,嘿,我正在分别搜索每个数组,以查找来自用户的特定输入 if ($.inArray(i.val(), helloInputArray) > -1) { //IF HELLO if (hello == 0) { //HAVE YOU ALREADY SAID HI? r = Math.floor(Math.random()*4);

嘿,我正在分别搜索每个数组,以查找来自用户的特定输入

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('');
                    }
                }
if($.inArray(i.val(),helloInputArray)>-1){//if HELLO
如果(hello==0){//你已经打过招呼了吗?
r=数学地板(数学随机()*4);
o、 html(o.html()+helloOutputArray[r]);
你好=1;
i、 val(“”);
}否则{//如果你已经打招呼了。。。
o、 html(o.html()+‘我已经跟你打过招呼了!
’; i、 val(“”); } }else if($.inArray(i.val(),byeInputArray)>-1){//if再见 如果(bye==0){ r=数学地板(数学随机()*4); o、 html(o.html()+byeOutputArray[r]); i、 val(“”); }否则{ o、 html(o.html()+‘我已经说再见了……走开!’; i、 val(“”); } }
有没有办法一次搜索所有数组,因为我需要在每个数组中搜索一个字符串

嗯哼

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


^_^如果我理解正确,您希望将单独的数组合并为一个,以便执行一个循环,但不希望修改原始数组

如果是,请尝试以下方法:

if( $.inArray( i.val(), helloInputArray.concat( byeOutputArray) ) > -1 ) {
    ...
将创建作为一个阵列连接在一起的两个阵列的副本,因此不会修改原始阵列。该副本作为第二个参数传递给
$.inArray()
方法


编辑:

从下面的注释中,听起来您想测试
i.val()
是否是数组中任何项的子字符串

如果这是正确的,您可能不会使用
$.inArray
,而是使用
$.each()
迭代数组,并测试值

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]);
      ...

太好了,到目前为止这看起来不错!我想知道如何在数组中的每个字符串中进行搜索?@Neurofluxation-那么您想搜索
I.val()
是否位于任何数组项的任何部分?听起来对吗?我马上更新。