如何使用角度6过滤两种不同类型的数组(删除重复数据)?

dur*_*uru 2 typescript angular

array1 = ["one","two"];

array2 = [ {"name":"one","id":101} , {"name":"two","id":102} , {"name":"three","id":103} , {"name":"four","id":104} ];
Run Code Online (Sandbox Code Playgroud)

在上面的数据中,array1是一个字符串值array2的集合,是一个对象的集合.现在如何删除array1相关的值array2.我使用for循环编写代码但是它太长了所以angular-6/typescript中存在任何预定义的方法.

输出:

array2 = [ {"name":"three","id":103} , {"name":"four","id":104} ];
Run Code Online (Sandbox Code Playgroud)

Sun*_*ngh 5

你可以利用filterincludes.

let finalArray = array2.filter(item=>!array1.includes(item.name))
Run Code Online (Sandbox Code Playgroud)