我有两个对象数组
var toto = [
{a:1, b:2, c:1},
{a:7, c:2, d:1}
]
var titi = [
{a:2, b:2, c:1},
{a:1, c:2, d:1}
]
我想找到lodash.differenceBy
的替代方法(我不想仅在这种情况下实现)
基本上可以做的事情
differenceBy(toto,titi, "a")
// => [{a:2, b:2, c:1}]
我用一个简单的参数制作了一个过滤器,但是我在添加对象方面很努力
static DifferenceBy(arr:Array<any>, arr2:Array<any>){
return arr.filter(function(i) {return arr2.indexOf(i) < 0;});
}
答案 0 :(得分:1)
答案 1 :(得分:0)
const toto = [{a:1,b:2,c:1},{a:7,c:2,d:1}]
const titi = [{a:2,b:2,c:1},{a:1,c:2,d:1}]
function differenceBy(array1, array2, key) {
return array1.filter(a => !array2.some(b => b[key] === a[key]))
}
console.log(differenceBy(toto, titi, "a"))
这将返回array1
中不存在的array2
中的所有项目:
{
"a": 7,
"c": 2,
"d": 1
}