Я попытался удалить несколько записей в массиве.Удаление определенных элементов (объектов) внутри массива
Эти записи являются объектами, и мне нужно найти объект, отвечающий определенным критериям.
var pending = [];
a.forEach(function(entry, index) {
if(entry.b == data) {
pending.push(index);
}
});
pending.forEach(function(entry) {
a.splice(entry, 1);
});
Проблема заключается в том, что он удаляет только половину того, что я хочу (когда b = data
) и даже удаляет некоторые случайные записи ...
Спасибо за помощь.
Что находится в 'a', что такое' data'? Что вы пытаетесь сохранить, показать нам какой-то релевантный (хотя и упрощенный) код с заполненными переменными? –
Возможно, вы получаете ложные срабатывания от вашего нестандартного сравнения сравнений. Вы прошли через это в отладчике? –
С каждым 'splice()' индексы в 'a' shift для всего'> entry', поэтому следующая 'entry' отключена на 1, затем на 2 и т. Д. Посмотрите на' '.filter()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). –