a=[{id:1},{id:2},{id:3}]
b=[{id:1},{id:2},{id:4}]
如何 计算 a 中 b 没有的 b中a没有的
取 a 中 b 没有的
a.filter(({ id }) => !b.find(_b => _b.id === id))
取 a 和 b 中不重复的部分
a.concat(b)
.reduce((prev, { id }) => {
const obj = prev.find(_a => _a.id === id)
if (obj) {
obj.value += 1
} else {
prev.push({ id, value: 1 })
}
return prev
}, [])
.filter(_a => _a.value === 1)
.map(_a => ({ id: _a.id }))
合并后计数 最后找数量等于1
var result = new Object();
var a=[{id:1},{id:2},{id:3}];
var b=[{id:1},{id:2},{id:4}];
var c= a.concat(b);
c.forEach(x=>(result[x.id]&&(result[x.id].count++))||(result[x.id]=x)&&(x.count=1));
c.filter(x=>x.count==1);
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
根据题意你是要得到b中a没有的
{id: 4}]
?同理可得a 中 b 没有的
[{id: 3}]
.