Jquery比较并返回字符串数组

问题描述:

嗨,我正在开发一个jQuery应用程序。我试图比较这两个数组。例如,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; 
    } 
    } 
} 

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

可以使用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);

+0

合作。非常感谢 –

+0

太好了,将其中一个答案解决了,然后 – anu

+0

每当我去打那个按钮,它说你可以在2分钟内接受答案。 –

检查这个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; 
}; 

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

尝试改变一些东西在你的代码:

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/

试试这个

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; 

这里使用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);