AlexBelkevich
@AlexBelkevich
Нет нерешаемых задач. Есть деревянные клиенты

Как удалить выбранные элементы Vue.js?

Добрый день. Подскажите, пожалуйста. Есть метод, который должен удалять выбранные позиции в корзине, если они отмечены чекбоксом. Но что-то идет не так. Точнее я понимаю что - пытаюсь удалить по индексу, после каждого цикла индекс у объектов меняется,следовательно идет некорректное удаление. Как можно побороть?
deletePosition() {
            for(let i = 0; i < this.listProducts.length; i++) {
                if(this.listProducts[i].checkbox === true) {
                    this.listProducts.splice(this.listProducts[i], 1);
                }
            }
        }


Значение чекбокса (true или false) записывается в объекте, поэтому идет сравнение по этому элементу

listProducts: [
					{
						name: 'Нож складной WENGER Evolution ,"Автобус" ,13 функций, 85 мм.WENGER',
						checkbox: true,
						image: require('./assets/product1.png'),
						price: 400,
						count: 10,
						sum: 0,
						showPopup: false
					},
					{
						name: 'Рюкзак WENGER «NEO»',
						checkbox: false,
						image: require('./assets/product2.png'),
						price: 200,
						count: 3,
						sum: 0,
						showPopup: false
					},
					{
						name: 'Перьевая ручка Waterman Hemisphere Essential, перо: нержавеющая сталь. WATERMAN',
						checkbox: true,
						image: require('./assets/product3.png'),
						price: 600,
						count: 1,
						sum: 0,
						showPopup: false
					}
				],


Скорее всего подхожу не с той стороны к вопросу..
  • Вопрос задан
  • 472 просмотра
Решения вопроса 1
@htmldeveloper
const deletePosition = listProducts => listProducts.filter(({ checkbox }) => checkbox);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы