2013-12-23 4 views
1

Что является самым простым способом удалить все объектов из массива с определенным свойством = x?Как удалить объекты массива, имеющие свойство

+2

Что вид массива? Образец, пожалуйста, – Khamidulla

+0

_.without (array, [* values]) _.without ([1, 2, 1, 0, 3, 1, 4], 0, 1); –

+0

Возможный дубликат [Удалить элемент массива на основе свойства объекта] (http://stackoverflow.com/questions/15287865/remove-array-element-based-on-object-property) – Khamidulla

ответ

2

Использование _.filter

var result = _.filter(arr, function(item) { 
    return !("prop" in item); 
}); 

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

var result = _.filter(arr, function(item) { 
    return !item.hasOwnProperty("prop"); 
}); 
0

Похоже, самым простым способом было бы использовать метод filter:

var newArray = _.filter(oldArray, function(x) { return !('prop' in x); }); 
// or 
var newArray = _.filter(oldArray, function(x) { return !_.has(x, 'prop'); }); 

Или, альтернативно, reject метод должен работать точно так же:

var newArray = _.reject(oldArray, function(x) { return 'prop' in x; }); 
// or 
var newArray = _.reject(oldArray, function(x) { return _.has(x, 'prop'); }); 

Update Учитывая Ваш обновленный вопрос, код должен выглядеть следующим образом:

var newArray = _.filter(oldArray, function(x) { return x.property !== 'value'; }); 

Или как это

var newArray = _.reject(oldArray, function(x) { return x.property === 'value'; }); 
Смежные вопросы