Как удалить объект, вложенный в два массива? - PullRequest
0 голосов
/ 05 мая 2020

Я хочу иметь функцию, которая получает имя категории и имя одного из элементов этой категории и возвращает весь объект без этого элемента, как мне это сделать?

Это то, что у меня есть, мне удалось найти элемент, который я хочу удалить с помощью двух циклов, но я не знаю, как его удалить.

const removeItem = (categoryName, itemName) => {
    const data = loadAll()
    data.categories.forEach(category => {
        if(category.name === categoryName){
            category.items.forEach(item => {
                if(item.name === itemName){
                    // DELETE
                }
            });
        }
    });
}

Объект:

{
   "categories":[
      {
         "name":"Carne",
         "items":[
            {
               "name":"Bitoque",
               "price":10
            },
            {
               "name":"Bife",
               "price":8
            },
            {
               "name":"Frango Grelhado",
               "price":6
            }
         ]
      },
      {
         "name":"Peixe",
         "items":[
            {
               "name":"Dourada",
               "price":12
            },
            {
               "name":"Sardinhas",
               "price":8
            }
         ]
      },
      {
         "name":"Entradas",
         "items":[
            {
               "name":"Couvert",
               "price":2
            }
         ]
      },
      {
         "name":"Sumos",
         "items":[

         ]
      }
   ]
}

1 Ответ

2 голосов
/ 05 мая 2020

Один из способов сделать это - просто filter items, например

const removeItem = (categoryName, itemName) => {
     const data = loadAll()
     data.categories.forEach(category => {
          if(category.name === categoryName){
              category.items = category.items.filter(item => item.name !== itemName);
          }
     });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...