2014-04-13 70 views
2

我一直在我的谷歌應用程序腳本中使用這個library,特別是Unique函數。數組JavaScript中的重複,獨特和獨特的值

到目前爲止,已經做了我所需要的,如果我有兩個數組,如:

[1,2,3][2,3,4],我一直在使用array1.concat(array2)和使用獨特的功能,這將返回[1,2,3, 4]。

如何檢索在我的示例中爲[1,4]的唯一值?

+1

[數組中的唯一值(可能重複http://stackoverflow.com/問題/ 1960473 /數組中的獨特值) – elclanrs

回答

3

嘗試下面的函數,它會返回不同的,唯一的和重複的元素的對象。

var a = [1,2,3], b = [2,3,4]; 
var c = a.concat(b); 

function arrays(array) { 
    var distinct = [], unique = [], repeated = [], repeat = []; 

    array.forEach(function(v,i,arr) { 
     arr.splice(i,1); 
     (distinct.indexOf(v) === -1) ? distinct.push(v) : repeat.push(v); 
     (arr.indexOf(v) === -1) ? unique.push(v) : void 0; 
     arr.splice(i,0,v); 
    }); 

    repeat.forEach(function(v,i,arr) { 
     (repeated.indexOf(v) === -1) ? repeated.push(v) : void 0; 
    }); 

    repeat = []; 

    return { 
     "distinct" : distinct, 
     "unique" : unique, 
     "repeated" : repeated 
    }; 
} 

console.log(arrays(c)); 

DEMO

你的情況,你會得到你想要的結果一樣console.log(arrays(c).unique) [1,4]

+1

現在,這是一個可愛的功能:-)謝謝 – dave