Javascript 比较2个数组的不同结果
如何将2个阵列与当前结果进行比较:Javascript 比较2个数组的不同结果,javascript,Javascript,如何将2个阵列与当前结果进行比较: 只有a中的值不是b 只有b中的值不是a var a=[154043001567771563164959543927679253099354952759310935989025462310960882232537986783388623514543867207428376770914338878286259829751732190488329241185585735642885111844762380667550] var b=[3292414118259829
a
中的值不是b
b
中的值不是a
var a=[154043001567771563164959543927679253099354952759310935989025462310960882232537986783388623514543867207428376770914338878286259829751732190488329241185585735642885111844762380667550]代码>
var b=[32924141182598297517123]代码>
for (var i = 0; i < a.length; i++) {
for (var j = 0; j < b.length; j++) {
if (a[i] == b[j]) {
}
if(b[j] !== a[i]){
}
}
}
对于b-a,只需在示例中交换a和b。看看这个
var resA = [];
a.forEach(function(v,i){ if( b.indexOf(v) < 0) resA.push(v)});
var resB = [];
b.forEach(function(v,i){ if( a.indexOf(v) < 0) resB.push(v)});
var resA=[];
a、 forEach(函数(v,i){if(b.indexOf(v)<0)resA.push(v)});
var resB=[];
b、 forEach(函数(v,i){if(a.indexOf(v)<0)resB.push(v)});
或者以更干净的方式使用过滤器
var resA = a.filter(function(v){ if(b.indexOf(v) < 0) return v ; });
var resB = b.filter(function(v){ if(a.indexOf(v) < 0) return v ; });
var resA=a.filter(函数(v){if(b.indexOf(v)<0)返回v;});
var resB=b.filter(函数(v){if(a.indexOf(v)<0)返回v;});
你已经试过了吗???@Wand Maker已经试过了,结果是a和b的差异的组合,我需要明确的结果a没有b,b没有aSeems,就像每个人都在看不到我说的话就以负面评价跳跃一样。@Alex_TNT好的,我收回了我的投票。虽然我没有否决你的问题,但我有点理解为什么人们否决了你的问题-你需要什么还不太清楚-需要一个人把问题读两三遍才能弄清楚。请参考:给出简单的输入和期望值示例总是有帮助的output@WandMakerMaker第二条评论不是指你。这是一般性的。虽然我不知道如何才能更好地解释这一点,但我现在还不明白,这正是我所需要的。在abobe示例中,a-b长度是19,b-a长度是1如果我问你,你介意吗,如果我有这样一个数组{“firstName”:“John”,“lastName”:“Doe”}
为了比较firstName和推送整个对象,代码将如何工作这是另一个问题。这些不是数组,而是对象。然后你可以遍历每个对象(map、foreach或for),创建两个包含你需要的新数组,或者你可以使用两个循环进行搜索谢谢你的解释,看来我又回到了原点,我需要对象内部的其他属性
var resA = [];
a.forEach(function(v,i){ if( b.indexOf(v) < 0) resA.push(v)});
var resB = [];
b.forEach(function(v,i){ if( a.indexOf(v) < 0) resB.push(v)});
var resA = a.filter(function(v){ if(b.indexOf(v) < 0) return v ; });
var resB = b.filter(function(v){ if(a.indexOf(v) < 0) return v ; });