从两个JavaScript数组中提取非重复项
考虑下面的代码 我有两个包含数据的数组,需要不存在的值从两个JavaScript数组中提取非重复项,javascript,arrays,Javascript,Arrays,考虑下面的代码 我有两个包含数据的数组,需要不存在的值 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]) {
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;
}
}
}
var存储=[“1”、“2”、“3”、“4”、“5”];
var favStores=[“2”,“4”];
外部:用于(变量i=0;i”);
文件写入('Fav存储j:'+Fav存储[j]);
文件。写(“
”);
警报(“找到匹配项”+存储[i]);
//继续对外开放;
}
}
}
我需要我的输出
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"]
这样:
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));
var存储=[“1”、“2”、“3”、“4”、“5”],
favStores=[“2”,“4”];
功能差异(a,b){
var结果=[];
对于(变量i=0;i
请注意,您可以使用
forEach
遍历该数组,但我只是在这里证明传统。您需要的是两个数组之间的差异。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));
var存储=[“1”、“2”、“3”、“4”、“5”],
favStores=[“2”,“4”];
功能差异(a,b){
var结果=[];
对于(变量i=0;i
请注意,您可以使用
forEach
遍历数组,但我只是在这里做传统的证明。请参阅:。@RaMs\u earthstolearn:filter函数应用于数组的每个元素,返回值'false'将导致它不包括在新数组中。请参阅:。@RaMs\u earthstolearn:filter函数应用于数组的每个元素array&返回值'false'将导致它不包含在新数组中。如果必须比较需要更多代码的JSON对象,该怎么办。您必须迭代所有受支持的JSON类型(数组和对象),但还要检查值是否不同,并为此制定策略。如果必须比较需要更多代码的JSON对象,该怎么办。您必须迭代所有受支持的JSON类型(数组和对象),但还要检查值是否不同,并为此制定策略。