[英]extract non duplicates from two arrays JavaScript
考慮下面的代碼
我有兩個數據數組,需要不存在的值。
var stores = ["1", "2", "3", "4", "5"];
var favStores = ["2", "4"];
outer: for (var i = 0; i < stores.length; i++) {
for (var j = 0; j < favStores.length; j++) {
if (stores[i] != favStores[j]) {
document.write('Stores I : ' + stores[i]);
document.write('<br>');
document.write('Fav Stores j : ' + favStores[j]);
document.write('<br>');
alert('Match Found' + stores[i]);
//continue outer;
}
}
}
我需要我的輸出為
1,3,5在一個新數組中。
這條路:
var stores = ["1", "2", "3", "4", "5"];
var favStores = ["2", "4"];
var output = stores.filter(function(i){
return favStores.indexOf(i)==-1;
});
// output is ["1", "3", "5"]
您需要的是兩個陣列之間的差異。 類似lodash的庫具有該功能,但是如果您要構建自己的庫,則可以使用以下功能:
var stores = ["1", "2", "3 ", "4", "5"],
favStores = ["2", "4"];
function diff(a, b) {
var results = [];
for(var i = 0; i < a.length; i++) {
if(b.indexOf(a[i]) < 0)
results.push(a[i]);
}
return results;
}
console.log(diff(stores, favStores));
請注意,您可以使用forEach
遍歷數組,但是我在這里只是遺留證據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.