Как удалить объекты из массива по значению переменной? - PullRequest
0 голосов
/ 11 июня 2019

Я кодирую генератор Pokemon и пытаюсь создать опцию для исключения определенных типов из результатов.

Я "пробовал" функции склейки и фильтрации, но мое понимание довольно ограничено, поэтому у меня может бытьпросто неправильно их использовал.

У меня есть эта переменная, полная объектов, таких как

var pokemonChoices = [{
    name: 'Bulbasaur',
    type: ["Grass","Poison"]
  }, {
    name: 'Charmander',
    type: ["Fire"]
  }];

Затем у меня есть выпадающее меню с типами и переменная с именем excludetype, которая получает свое значениеиз него.

Как мне сделать так, чтобы я мог создать новый массив, исключая, например, всех покемонов с типом «Трава», или любой другой тип excludetype?

================================

РЕДАКТИРОВАТЬ: Я думаю, что у меня это работает, используя

  var Excludinator = pokemonChoices.filter(function( obj ) { return obj.type.includes(excludetype); }); 

  pokemonChoices = pokemonChoices.filter(function(item) {
  return !Excludinator.includes(item); 
  })

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Чтобы получить всех покемонов с type, содержащим grass, вы можете использовать filter с includes:

const pokemonChoices = [{name:'Bulbasaur',type:["Grass","Poison"]},{name:'Charmander',type:["Fire"]}];

const pokemonByType = t => pokemonChoices.filter(({ type }) => type.includes(t));

console.log(pokemonByType("Grass"));
console.log(pokemonByType("Fire"));
.as-console-wrapper { max-height: 100% !important; top: auto; }
0 голосов
/ 11 июня 2019

Я верю, что это то, чего вы пытаетесь достичь.

// Array holding your Pokemon Objects
const pokemonChoices = [
  {
    name: 'Bulbasaur',
    type: ['Grass', 'Poison'],
  },
  {
    name: 'Charmander',
    type: ['Fire'],
  },
];

// Function where you pass in the excluded type and it filters out Pokemon that include it.
const searchPokemon = exclude => {
  return pokemonChoices.filter(pokemon => !pokemon.type.includes(exclude));
};

console.log(searchPokemon('Poison'));

Более подробную информацию о Array.filter () и Array.include () можно найти по этим ссылкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...