如果对象包含在另一个数组中,则从数组中删除对象

Mor*_*der 2 javascript ecmascript-6

我试图从数组中删除一个对象,如果该对象的属性(唯一)包含在另一个数组中.我知道我可以像这样做一个嵌套的for循环:

for(i = 0; i < array.length; i++) {
    for(j = 0; j < array2.length; j++) {
        if(array[i].Email === array2[j].Email) {
            //remove array[i] object from the array
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

管他呢.这样的事情.那有ES6过滤器吗?我可以轻松地对带有字符串的常规数组进行过滤,但使用对象数组进行过滤则有点棘手.

Raj*_*esh 6

如果您使用ES6很好,您甚至可以查看array.find,array.filterarray.some

Array.findIndex

var result = array.filter(x=>{
  return array2.findindex(t=> t.Email === x.Email) === -1
})
Run Code Online (Sandbox Code Playgroud)

Array.some

var result = array.filter(x=>{
  return !array2.some(t=> t.Email === x.Email)
})
Run Code Online (Sandbox Code Playgroud)