2014-04-01 4 views
1

У меня есть пример вложенного меню. Я хочу удалить объект, у которого есть выбранное свойство. как сделать это с помощью подчеркивания или lodash? thxUnderscorejs: Как удалить вложенный объект по свойству?

[ 
{ 
"label": "My Documents", 
"id": "mydocs", 
"children": [ 
    { 
    "children": [ 
     { 
     "children": [ 

     ], 
     "label": "sub folder 1.1", 
     "id": "58d32eec-75d3-45ab-b896-73bdb12dcacd", 
     "selected": "selected" 
     }, 
     { 
     "children": [ 
      { 
      "children": [ 

      ], 
      "label": "sub sub folder 1.2.1", 
      "id": "0c0c9705-7012-4e11-a540-526babdd816f" 
      } 
     ], 
     "label": "sub folder 1.2", 
     "id": "bdfa6eb9-9527-490a-be5d-b2158df98982" 
     } 
    ], 
    "label": "folder 1", 
    "id": "e53455ef-4e0c-4d2c-8148-7e3152fff0ae" 
    }, 
    { 
    "children": [ 

    ], 
    "label": "folder 2", 
    "id": "b6fa392b-89ed-441f-9c4b-2a44c48829f6" 
    }, 
    { 
    "children": [ 

    ], 
    "label": "My Docs 2", 
    "id": "db92b3e6-80f6-4344-bba1-252b195c17a0" 
    } 
] 
} 
] 
+0

Какой из объектов вы хотите удалить? – Bergi

ответ

1

Это удалит элемент из массива data где data твой данный объект.

_.each(data, function(item, idx) { 
    if(_.findWhere(item.children, {selected: "selected"})) { 
    data.splice(idx, 1); //remove this item from data 
    } 
}); 

Это будет фильтровать его из массива выбранный объект будет по-прежнему находиться в данных

_.reject(data, function(item, idx) { 
    return _.findWhere(item.children, {selected: "selected"}); 
});