我想突出兩個陣列之間的dfferences。請注意,arr1和arr2的長度會有所不同,並有多種類型(字符串和數字)。
我的代碼
function diff(arr1, arr2) {
var diffArr = [];
if (arr1.length >= arr2.length) {
for (var i = 0; i < arr1.length; i++){
if (arr2.indexOf(arr1[i]) < 0) {
diffArr.push(arr1[i]);
}
}
} else {
for (var j = 0; j < arr2.length; j++){
if (arr1.indexOf(arr2[j]) < 0) {
diffArr.push(arr2[j]);
}
}
}
return diffArr;
}
問題
diff([1, 2, 'cat', 'fish'], [1, 2, 3,'dog']); //returns only ['cat', 'fish']
我敢肯定,我的代碼僅返回副本中通過diffArr.push一個陣列(即使兩個陣列都有獨特的值)。但是,我不確定如何克服這一點。
我引用
Removes Duplicates from Javascript Arrays
Removed Duplicates from an Array Quickly
@Donal我不認爲這是真的 - 的indexOf()可用於陣列(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – jonplaca