2017-05-25 63 views
-2

https://jsbin.com/bixihusaco/edit?html,js,outputES6过滤器,但目标对象

let x = [{id:1,name:'abc',checked:true}, 
     {id:2,name:'def',checked:true}, 
     {id:3,name:'hi',checked:false}] 

x = x.filter(obj => obj.checked === true) 

数组我知道该怎么做过滤,但如果我的比较目标不只是真/假,但对象的数组是什么?

let y = [{id:1,checked:true},{id:2,checked:true}] 

如何删除id === 3的对象?

+2

怎么样:[{ID:1,检查:真正},{ID:2,检查:真正}]。!滤波器((OBJ)=> obj.id = = 3); – binariedMe

+0

当您比较内容时,它会返回true或false,例如'if(1 === 1)' –

+1

我想这就是你的意思? 'x.filter(a => y.some(b => a.id === b.id))'。请扩展问题以明确你的要求,所以我们不必猜测。 – Thomas

回答

-1

请试试这个

let restrictedId = 3 
let filteredData = [{id:1,checked:true},{id:2,checked:true}] 
     .filter((obj) => obj.id !== restrictedId);