2016-12-31 116 views
-1

我有地图的形式的,过滤项对象

var map1 = {123 : true, 345: false, 456:true} ; where 123, 345, 456 are ids with status 'true' or 'false'. 

现在,基于上述ID的布尔状态,我需要从下方移除这些ID的记录阵列,

   [ { 
        id:123, 
        name:'foo' 

       }, 
       { 
        id:345, 
        name:'baar' 

       },{ 
        id:456, 
        name:'foobar' 

       }] 

因此,在该示例中,具有ID的“121”和“456”中的对象应当它们与布尔状态地图中的“真正的”删除。

+0

你尝试过什么?我不确定问题是什么。 – 4castle

+0

ID为121的对象不会从表格中删除,因为您已将地图中的123设置为true,121未设置为任何值 – Maciej

+0

谢谢@Septuagint,它工作正常。 – VishnuNair

回答

1

鉴于你的地图被称为map1和数组您需要过滤被称为arr这应该做的伎俩: arr.filter((elem) => { return !map1[elem.id] }

+0

甚至不需要代码块:'arr.filter(e =>!map1 [e.id])' – 4castle