【问题标题】:Compare 2 arrays and if match return 1 [duplicate]比较2个数组,如果匹配返回1 [重复]
【发布时间】:2015-04-15 16:15:21
【问题描述】:

当我控制台下面的两个数组是它的样子

aa=  [0: "349",1: "810",2: "863",3: "657",4: "602",5: "317",6: "665",7: "865",8: "624",9: "805",10: "887",11: "659"];

bb=[0: "349", 1: ""];

cc=find_flight(aa,bb);

在两个数组中 349 是匹配的,一旦匹配它应该返回 1。下面是我尝试的方法

function find_flight(aa,bb)
    {
        if(a2.toString() == a1.toString())
        {
                return true;
        }
    }


console.log(aa+'-'+bb);

Output: 349,810,863,657,602,317,665,865,624,805,887,659-349,

它不匹配任何人都可以给出解决方案!!!!

【问题讨论】:

  • 即使单个元素匹配,您也想返回 1?
  • 如果任何元素匹配,如果全部匹配,应该返回 1?
  • 您正在以这种方式测试两个数组是否完全相等。这是不对的,因为他们有不同的价值观。你得试试另一种逻辑
  • 是的,数组中只有一个匹配项
  • 在 2 个数组中 349 匹配 na !!!!!!!!!!!!

标签: javascript jquery arrays regex


【解决方案1】:

一种方法是这样的:

found=false; 
aa.forEach(function(e) { 
   bb.forEach(function(e2) { 
     if (e === e2) { found=true; } 
   });
});

我用它来初始化数组,因为我的控制台不接受你的语法。

aa = ["349","810","863","657","602","317","665","865","624","805","887","659"];
bb = ["349",""];

【讨论】:

    【解决方案2】:
    function find_flight(a,b)
    {
    var check  = false;
    a.forEach(function(x) { 
       b.forEach(function(y) { 
           //console.log(x+"  "+y +"   "+(x==y?1:0));
           if (x==y) { check=true; } 
       });
    });
    return check;
    }
    
    var aa= [1,2,3,4,5,6];
    var bb= [0,9,8,7, 4];
    

    像这样使用它

    console.log(find_flight(aa,bb));
    

    【讨论】:

    • 349-349 匹配但返回 true;没有返回,可能是在数组内部
    • 感谢您更新它的工作!!!!!!!!!!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多