2016-05-11 6 views
-2

У меня есть объект, который выглядит следующим образом:Как фильтровать свойства массива объекта?

myObj = { 

    1: 
    [ 
       { 
       "name" : "ringo", 
       "passed": true, 
       "level" : 2 
       }, 
       { 
       "name" : "paul", 
       "passed": true, 
       "level" : 3 
       }, 
       { 
       "name" : "john", 
       "passed": false, 
       "level" : 4 
       }, 
       { 
       "name" : "george", 
       "passed": true, 
       "level" : 1 
       }, 
    ], 

    2: 
    [ 
       { 
       "name" : "ringo", 
       "passed": true, 
       "level" : 2 
       }, 
       { 
       "name" : "paul", 
       "passed": true, 
       "level" : 3 
       }, 
       { 
       "name" : "john", 
       "passed": false, 
       "level" : 4 
       }, 
       { 
       "name" : "george", 
       "passed": true, 
       "level" : 1 
       }, 
    ], 

}

Как фильтровать myObj сохранение структуры myObj (ie.keys (1,2) и гнездовой массив) и возвращая массив объектов которые проходят два теста, прошедших = true и level> 3?

+1

Это недопустимый синтаксис литерала объекта, который будет использовать ':' not '='. –

ответ

0

Используйте _.mapObject, чтобы сохранить свою ключевую структуру, а затем отфильтруйте массивы.

var result = _.mapObject(myObj,d=> _.filter(d,k=> k.passed && k.level > 3)) 

https://jsfiddle.net/ro4p4kya/

Обратите внимание, что предоставленные возвращает объект нулевой результат.

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