针对另一个对象数组过滤对象数组

sti*_*bay 1 javascript arrays underscore.js lodash

我有两个像这样简化的数组.

var a = [{
 number: 1,
 name: "A"
}, {
 number: 2,
 name: "B"
}, {
 number: 3,
 name: "C"
}, {
 number: 4,
 name: "D"
}, {
 number: 5,
 name: "E"
}, {
 number: 6,
 name: "F"
}];

var b = [{
 number: 3,
 name: "C"
}, {
 number: 6,
 name: "F"
}];
Run Code Online (Sandbox Code Playgroud)

我想要的是返回一个数组,其中a过滤b.结果是这样的.

var result = [{
 number: 1,
 name: "A"
}, {
 number: 2,
 name: "B"
}, {
 number: 4,
 name: "D"
}, {
 number: 5,
 name: "E"
}];
Run Code Online (Sandbox Code Playgroud)

在堆栈溢出这里看了很多其他解决方案,但无法让它工作.

我可以使用像下划线这样的库.

Max*_*min 6

lodash通过单线解决方案可以实现.

var a = [{
 number: 1,
 name: "A"
}, {
 number: 2,
 name: "B"
}, {
 number: 3,
 name: "C"
}, {
 number: 4,
 name: "D"
}, {
 number: 5,
 name: "E"
}, {
 number: 6,
 name: "F"
}];

var b = [{
 number: 3,
 name: "C"
}, {
 number: 6,
 name: "F"
}];

var result = _.differenceWith(a, b, _.isEqual);

console.log(result)
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)