Как удалить определенные данные из массива - PullRequest
1 голос
/ 11 июля 2019

Я новичок в ионике 4. Я делаю функцию корзины покупок.Я хочу удалить выбранный элемент.Но он удаляет как поп-функция, а не удаляет определенный элемент.Я следовал этому руководству: https://devdactic.com/dynamic-ionic-4-slides/

В сервисном режиме я использую эту функцию, затем Cart.page.ts

onDeleteItem(i) {
const index = this.selectedItems.indexOf(i);
if (index > -1) {
this.cartServ.deleteFromCart(i);
this.selectedItems.splice(index, 1);
console.log(this.selectedItems);
}
this.total = this.selectedItems.reduce((a, b) => a + (b.count * b.price), 0);
}

Cart.service

    addToCart(product) {
        this.cartService.addProduct(product);
      }


    deleteFromCart(i) {
    const index = this.cart.indexOf(i);
    if (index > -1) {
      this.cart.splice(index, 1);
    }
}

Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 11 июля 2019

Не передавайте функцию index в deleteFromCart.

Причина в том, что index удаляемого элемента в массиве selectedItems может не совпадать с индексом в cart items Array.

Передайте i, являющийся предметом, в функцию deleteFromCart и найдите index и используйте splice.

onDeleteItem(i) {
    ...
    this.cartServ.deleteFromCart(i);
    ...
}

deleteFromCart(i) {
   const items = this.cart.filter(item => item.id === i.id);
   const index = this.cart.indexOf(items[0])
   if (index > -1) {
        this.cart.splice(index, 1);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...