【问题标题】:Jquery to compare and return string arraysJquery比较并返回字符串数组
【发布时间】:2016-12-27 10:10:32
【问题描述】:

您好,我正在开发一个 jquery 应用程序。我正在尝试比较两个数组。例如,

Firstarray=["Mike","Jack"];
SecondArray=["Mike","Jack","Andy","Cruz"];

每当我们比较以上两个数组时,我想返回两个数组中都存在的字符串或两个数组共有的字符串!

我尝试如下。这段代码不起作用。

for (var i = 0; i < Firstarray.length; i++) {
   for (var j = 0; j < SecondArray.length; j++) {
     if (Firstarray[i] == SecondArray[j]) {
        alert('found ' + SecondArray[j]);
        return;
     }
   }
}

任何人都可以在这方面帮助我!非常感谢。

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    你可以使用indexOf()函数

    Firstarray=["Mike","Jack"];
    SecondArray=["Mike","Jack","Andy","Cruz"];
    var result = new Array();
    for (var i = 0; i < Firstarray.length; i++) {
      if(SecondArray.indexOf(Firstarray[i])>=0){
        result.push(Firstarray[i]);
      }
    }
    console.log(result);

    【讨论】:

    • 工作。非常感谢
    • 当我点击那个按钮时,它会说你可以在 2 分钟内接受答案。
    【解决方案2】:

    这是一个使用 Array.prototype.filterArray.prototype.some 以及一些 ES6 风味的解决方案 - 请参阅下面的演示:

    var firstArray=["Mike","Jack"];
    var secondArray=["Mike","Jack","Andy","Cruz"];
    
    var result = secondArray.filter(a => firstArray.some(b => a === b));
    
    console.log(result);

    【讨论】:

      【解决方案3】:

      检查这个How can I find matching values in two arrays?

      Array.prototype.diff = function(arr2) {
      var ret = [];
      this.sort();
      arr2.sort();
      for(var i = 0; i < this.length; i += 1) {
          if(arr2.indexOf( this[i] ) > -1){
              ret.push( this[i] );
          }
      }
      return ret;
      };
      

      【讨论】:

        【解决方案4】:

        var FirstArray=["Mike","Jack"];
        var SecondArray=["Mike","Jack","Andy","Cruz"];
        var commonArray = Array();
        var count=0;
        
        for (var i=0; i<FirstArray.length; i++) {
          for (var j=0;j< SecondArray.length;j++) {
            if (FirstArray[i] == SecondArray[j]){
              commonArray[count]=FirstArray[i];
              count++;
            }
          }
        }
        
        console.log(commonArray);

        【讨论】:

          【解决方案5】:

          尝试更改代码中的一些内容:

          var Firstarray=["Mike","Jack"];
          var SecondArray=["Mike","Jack","Andy","Cruz"];
          var matchedData = [];
          
          
          for (var i = 0; i < Firstarray.length; i++) {
                          for (var j = 0; j < SecondArray.length; j++) {
                              if (Firstarray[i] == SecondArray[j]) {
                                  matchedData.push(SecondArray[j]);
          
                              }
                          }
                      }
                      alert(matchedData);
          

          工作小提琴: https://jsfiddle.net/o3brcsvw/

          【讨论】:

            【解决方案6】:

            试试这个

            var Firstarray=["Mike","Jack"];
            var SecondArray=["Mike","Jack","Andy","Cruz"];
            var matchedData = [];
            for (var i = 0; i < Firstarray.length; i++) {
                for (var j = 0; j < SecondArray.length; j++) {
                    if (Firstarray[i] == SecondArray[j]) {
                        //alert('found ' + SecondArray[j]);
                        matchedData.push(SecondArray[j]);
                    }
                }
            }
            return matchedData;
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2019-03-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多