2015-07-10 88 views
-1

我有兩個數組是這樣的:找到重複的兩個數組

var x = ['1','2','6']; 
var y = ['4', '5','6']; 

如何找到在純JavaScript和我在兩個數組複製想避免使用循環?

輸出 - duplicates: 6

+0

是否需要是純JS或者您可以使用Underscore.js或jQuery的? –

+0

嗨,純粹! @Jezzabeanz – sbaaaang

+1

http://stackoverflow.com/questions/1885557/simplest-code-for-array-intersection-in-javascript – phts

回答

2

嘗試這樣:

var x = ['1','2','6']; 
var y = ['4', '5','6']; 

var overlap = x.filter(function(v,i,a){ 
    return y.indexOf(v) > -1; 
}); 

console.log(overlap); // ['6'] 

這是否工作,爲你的目的是什麼?

MDN docs for filter

1

試試這個

var x = ['1','2','6']; 
var y = ['4', '5','6']; 
var duplicate = []; 
for (var i=0; i<y.length; i++) { 
    var index = x.indexOf(y[i]); 
    if (index > -1) { 
     duplicate.push(x[index]); 
    } 
} 

Output: ["6"] 
+0

「我想避免使用循環」 –

+0

@DavidBarker好吧。它是'O(array1.length * array2.length)',但對於相當小的陣列和現代硬件,這不應該遠程引起問題 –