Как удалить объект в объекте? - PullRequest
0 голосов
/ 04 мая 2020
[
  {
    "country": "Afghanistan",
    "products": {
      "beer": 2235,
      "wine": 2274,
      "juices": 7
    }
  },
  {
    "country": "Asia",
    "products": {
      "beer": 2362,
      "wine": 20204,
      "juices": 238
    }
  },
  {
    "country": "Italy",
    "products": {
      "beer": 267,
      "wine": 459,
      "juices": 3
    }
  },
  {
    "country": "North America",
    "products": {
      "beer": 2367,
      "wine": 4359,
      "juices": 33
    }
  }
]

У меня есть вышеуказанный объект, и я хочу удалить как «Азия», так и «Северная Америка», а также весь ряд данных, связанных с ними. Как я go об этом?

Необязательно: А если я хочу удалить все страны, в которых имеется менее 500 пивных продуктов?

Ответы [ 4 ]

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

Вы можете использовать Array.filter () для достижения этой цели.

var countries = [
{ "country": "Afghanistan", "products": { "beer": "2235", "wine": 2274, "juices": 7 }},
{ "country": "Asia", "products": { "beer": "2362", "wine": 20204, "juices": 238 }},
{ "country": "Italy", "products": { "beer": "267", "wine": 459, "juices": 3 }},
{ "country": "North America", "products": { "beer": "2367", "wine": 4359, "juices": 33 }}
]

// without Asia and North America
var newCountries = countries.filter(({country}) => country !== 'Asia' && country !== 'North America');

console.log(newCountries);

// with beer products more that 500
var moreBeerCountries = countries.filter(({products}) => products.beer > 500);

console.log(moreBeerCountries);
2 голосов
/ 04 мая 2020

Если вы хотите удалить страны, которые имеют менее 500 пивных продуктов

var countries = [
    { "country": "Afghanistan", "products": { "beer": "2235", "wine": 2274, "juices": 7 } },
    { "country": "Asia", "products": { "beer": "2362", "wine": 20204, "juices": 238 } },
    { "country": "Italy", "products": { "beer": "267", "wine": 459, "juices": 3 } },
    { "country": "North America", "products": { "beer": "2367", "wine": 4359, "juices": 33 } }
]
const filtered = countries.filter((country) => parseInt(country.products.beer) > 500)

console.info(filtered)
2 голосов
/ 04 мая 2020

Вы можете использовать filter

var countries = [
    { "country": "Afghanistan", "products": { "beer": "2235", "wine": 2274, "juices": 7 } },
    { "country": "Asia", "products": { "beer": "2362", "wine": 20204, "juices": 238 } },
    { "country": "Italy", "products": { "beer": "267", "wine": 459, "juices": 3 } },
    { "country": "North America", "products": { "beer": "2367", "wine": 4359, "juices": 33 } }
]


var result = countries.filter(({country}) => country !== 'North America' && country !=='Asia' );
console.log(result)
0 голосов
/ 04 мая 2020

Используйте простые функции l oop и сращивания .

var i = 0;
while (i < countries.length) {
    if(countries[i].products.beer < 500) {
        countries.splice(i, 1);
    } else {
        ++i;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...