【发布时间】:2020-03-22 14:26:22
【问题描述】:
我正在尝试制作迷你口袋宠物小精灵游戏。这是我存储口袋妖怪的方式。
let Charmander = {
"name": "Charmander",
"type": "fire",
"hp": "70",
"weaknesses": ["ground", "rock", "water"],
};
let Bulbasaur = {
"name": "Bulbasaur",
"type": ["Grass", "Poison"],
"hp": "70",
"weaknesses": ["Fire", "Flying", "Ice", "Psychic"],
};
let Squirtle = {
"name": "Squirtle",
"type": "Water",
"hp": "60",
"weaknesses": ["Electric", "Grass"],
};
然后它会要求你选择你想要的起始口袋妖怪。
let startingChoice = prompt("What is your starting Pokemon " + Charmander.name + ", " + Bulbasaur.name + ", " + Squirtle.name);
然后我为第一个可以挑选的口袋妖怪创建一个数组
let firstPokemon = [ Charmander.name, Bulbasaur.name, Squirtle.name];
然后我会检查你输入的结果,看看它是否在里面。
if(startingChoice == "Charmander"){
pokeBox.push(Charmander);
} else if(startingChoice == "Bulbasaur"){
pokeBox.push(Bulbasaur);
}else{
pokeBox.push(Squirtle);
}
}else{
console.log("Chupa");
}
正如您在上面看到的那样,效率很低。我怎样才能做到这一点,以便当它放入您的 pokeBox 时,它会添加所有对象信息,而无需所有信息语句。
这是 pokeBox 的结果
Object { name: "Charmander", type: "fire", hp: "70", … }
我怎样才能使它更有效率?
【问题讨论】:
-
使用单个对象,而不是许多单独的对象,使用名称作为键和信息对象作为值。然后只需使用输入的名称作为获取信息对象的键,例如
pokemons[promptedName]
标签: javascript arrays object if-statement include