2016-12-31 4 views
-1

У меня есть карта формы,фильтр элементов из массива JavaScript объектов

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

Теперь, на основе булева статуса указанных идентификаторов, мне нужно, чтобы удалить записи этих идентификаторов из ниже массив,

   [ { 
        id:123, 
        name:'foo' 

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

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

       }] 

Таким образом, в этом примере, объекты с идентификаторами «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

Смежные вопросы