这里有一些数组问题。我基本上想循环遍历array1
,检查array2
中该数组中的哪些元素,然后返回一个包含所有匹配项的新数组。
如何做到这一点?
答案 0 :(得分:0)
此代码使用纯javascript而不是库
var fruits1 = ["Banana", "Pear"];
var fruits2 = ["Banana", "Orange", "Apple", "Mango"];
var fruits3 = [];
for (i=0; i< fruits1.length; i++)
if (fruits2.indexOf(fruits1[i]) > -1)
fruits3.push(fruits1[i]);
答案 1 :(得分:-2)
如果你有不同长度的未排序数组,这也可以。
创建一个名为 intersect 的函数,例如:
function intersect(arr1,arr2){
//We need to know which array is the shortest to avoid useless loops
if(arr2.length<arr1.length){
var temp = arr1;
arr1 = arr2;
arr2 = temp;
}
// Now, we are sure arr1 is the shortest
var result = [];
for(var i = 0; i<arr1.length; i++){
if(arr2.indexOf(arr1[i])>-1) result.push(arr1[i]);
}
return result;
}
此函数将2个数组作为参数,无需担心其顺序。
然后你可以调用它并查看结果:
var arr1 = [1,2,3,4,5];
var arr2 = [4,5,6,7,8,9,10,12];
var inter = intersect(arr1,arr2);
alert(inter);
答案 2 :(得分:-3)
Vanilla Javascript
for(var x=0;x<array1.length;x++){
for(var y=0;y<array2.length;y++){
if ( array1[x] == array2[y] ) array3.push(array1[x]);
}
}
Jquery版本
$.each(array1, function(k,v){
$.each(array2, function(k2,v2){
if ( v == v2 ) array3.push(v2);
});
});