Присваивание массиву новый массив, переданый в функцию
Есть метод с switch case, который обрабатывает три разных 'контейнера', но нужно сделать один метод, в который можно будет передаваться параметры(в моём случае проблема с передачей контейнера) и там уже обрабатывать. (Vue JS)
if (payload.item.checked) {
this.secondContainer.push(payload.item);
} else {
this.secondContainer = this.secondContainer.filter((item) => {
return item.id !== payload.item.id;
});
}
Так я передаю туда параметры(пробовал как отдельно, так и общим объектом).
this.helperHandlePutList({
item: payload.item,
container: this.secondContainer,
});
Сам обработчик, который отрабатывает всё в поле if, но если попадает в поле else, контейнеры не присваивается новый контейнер, точнее он уже не тот что мы прописывали в data.
То есть в момент push, items пушатся в контейнер и отображаются как надо, но при filter никаких изменений с этим контейнером не происходит.
helperHandlePutList(payload) {
console.log(payload);
if (payload.item.checked) {
payload.container.push(payload.item);
} else {
payload.container = payload.container.filter((containerItem) => {
return payload.item.id !== containerItem.id;
});
}
}
Я пробовал с методом splice но ему нужен (idx или id), а айтемы в контейнеры могут быть не по порядку тогда весь контейнер ломается
Ответы (1 шт):
Не используйте filter, который создает новый массив, а используйте splice в цикле.