2015-09-10 1 views
1

Использование ванильный JavaScript (поддерживаемого последней версией Chrome, не беспокойтесь о IE) и/или lodash/подчеркивания но не JQuery, как я могу принять этот массив:JavaScript Удалить объект из массива на основе детского собственности

[ 
    { 
    "id": 1, 
    "places": { 
     "city": "boston" 
    } 
    }, 
    { 
    "id": 2, 
    "places": { 
     "city": "new york" 
    } 
    } 
] 

... и удалить весь объект, который имеет город «бостон»:

[ 
    { 
    "id": 2, 
    "places": { 
     "city": "new york" 
    } 
    } 
] 

Пожалуйста, имейте в виду, что это массив может иметь десятки записей. Спасибо!

http://plnkr.co/edit/JW3zd6A7OcmihM4CTh1D?p=preview

ответ

4

Один из способов, вы можете сделать это с помощью фильтра. Например:

var dataWithoutBoston = data.filter(function (el) { 
    return el.places.city !== "boston"; 
}); 

И сделать это многоразовым, вы можете иметь такую ​​функцию:

function removeFromCity(data, name) { 
    var result = data.filter(function (el) { 
    return el.places.city !== name; 
    }); 
    return result; 
}; 
+1

обернуть вашу функцию, и вы можете установить город, чтобы выбрать в качестве аргумента – maioman

+0

Спасибо nersoh! – Ryan

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