2017-05-25 38 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);