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过滤器吗?我可以轻松地对带有字符串的常规数组进行过滤,但使用对象数组进行过滤则有点棘手.
如果您使用ES6很好,您甚至可以查看array.find,array.filter或array.some
var result = array.filter(x=>{
return array2.findindex(t=> t.Email === x.Email) === -1
})
Run Code Online (Sandbox Code Playgroud)
var result = array.filter(x=>{
return !array2.some(t=> t.Email === x.Email)
})
Run Code Online (Sandbox Code Playgroud)