我正在对Pokemon生成器进行编码,并尝试提供一种从结果中排除某些类型的选项。
我已经“尝试”了拼接和过滤器功能,但是我的理解还很有限,所以我可能只是错误地使用了它们。
我已经使这个变量充满了像
这样的对象var pokemonChoices = [{
name: 'Bulbasaur',
type: ["Grass","Poison"]
}, {
name: 'Charmander',
type: ["Fire"]
}];
然后我有一个下拉菜单,其中包含类型和一个名为excludetype的变量,可从中获取其值。
如何做到这一点,以便我可以创建一个新的数组,例如,排除所有类型为“ Grass”的口袋妖怪或任何排除类型设置的数组?
===============================
编辑:我想我已经使用它了
var Excludinator = pokemonChoices.filter(function( obj ) { return obj.type.includes(excludetype); });
pokemonChoices = pokemonChoices.filter(function(item) {
return !Excludinator.includes(item);
})
答案 0 :(得分:1)
要获取包含type
的{{1}}的所有神奇宝贝,可以将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"));
答案 1 :(得分:0)
我相信这就是您要实现的目标。
// 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.includes()的更多信息。