我有一个对象数组和一个需要用来过滤对象的值数组,我可以删除数组中的重复项,但是我试图找出如何过滤id匹配的对象(或者使用startsWith()
)来过滤id以给定值开头的对象。
最后,ID为“F11v6”的对象应从结果数组中删除。
let blacklistedComponents = ["F11", "U30"];
let components = [
{ id: "F11v6", type: "unknown" },
{ id: "U30v3", type: "unknown" },
{ id: "CH11", type: "unknown" },
{ id: "CT12", type: "true" },
{ id: "U03v5", type: "unknown" },
{ id: "CT12", type: "true" }
];
console.log(components.filter((v,i,a)=>a.findIndex(v2=>(v2.id===v.id))===i));
4条答案
按热度按时间lymgl2op1#
你可以看看blalisted项目,检查
id
是否在列表中。单回路方法
一个二个一个一个
cedebl8k2#
您可以使用
!.some()
过滤那些与不允许列表中的元素匹配的元素。然后应用您的过滤器去除重复的元素,例如:rjjhvcjd3#
eeq64g8w4#
不完全确定您是否只想删除以黑名单项开头的元素,或者是否删除在任何地方包含该黑名单项的元素。
使用组合来展示如何执行其中一项操作,并使用解构来提取相关字段作为每个过滤器的参数。