Подтвердить что ты не робот

Удалить элемент [i] из jQuery каждого цикла

Как удалить элемент [i] из элементов, когда он достигает:

$.each(items, function(i) {
    // how to remove this from items
});
4b9b3361

Ответ 1

Если вы хотите удалить элемент из массива, используйте splice()

var myArray =['a','b','c','d'];
var indexToRemove = 1;
// first argument below is the index to remove at, 
//second argument is num of elements to remove
myArray.splice(indexToRemove , 1);

myArray теперь будет содержать ['a','c','d']

Ответ 2

Лучше не использовать $.each в этом случае. Вместо этого используйте $.grep. Этот цикл проходит через массив примерно так же, как и $.each с одним исключением. Если вы возвращаете true из обратного вызова, элемент сохраняется. В противном случае он удаляется из массива.

Ваш код должен выглядеть примерно так:

items = $.grep(items, function (el, i) {
    if (i === 5) { // or whatever
        return false;
    }

    // do your normal code on el

    return true; // keep the element in the array
});

Еще одно примечание: this в контексте обратного вызова $.grep установлено на window, а не на элемент массива.

Ответ 3

Я предполагаю, что вы хотите $.map. Вы можете return null удалить элемент и не беспокоиться о том, как индексы могут меняться:

items = $.map(items, function (item, index) {
    if (index < 10) return null; // Removes the first 10 elements;
    return item;
});

Ответ 4

Что-то вроде

var indexToBeRemoved = 3; // just an illustration
$.each(items, function(i) {
    if(i==indexToBeRemoved){
        $(this).remove();
    }
});

Ответ 5

решение ниже:

_.each(data, function (item, queue) {
    if (somecondition) {
        delete data[queue]
    }
});

Ответ 6

Как упоминалось выше @lonesomday (я просто не мог добавить это в комментарий) grep для массивов, но вы можете вставить свой селектор внутри grep:

var items = $.grep($(".myselector", function (el, i) {
  return (i===5) ? false : true;
};

Это сохранит все найденные элементы, используя $(".myselector") в "темах", оставляя элемент на 6-й позиции (список индексируется 0, что делает "5" 6-м элементом)