私はゲームを作っています。エンドユーザは、利用可能な12の戦闘機の中から戦闘機を選択します。彼らが「Ryu」を選んだとしよう。しかし彼らは「春里」を選ぶことができた。プレーヤーの選択は変数 'selectedPlayer'に保存されます。今は、ユーザーの選択に一致するオブジェクト(またはそのメンバー)を取得またはアクセスする必要があります。私は以下のような方法をいくつか試しましたが、コンソールに入っています: "Uncaught TypeError:未定義のプロパティ 'Ryu'を読み込めません。Javascriptの変数値を使用してネストされたオブジェクトにアクセスします。
var selectedPlayer = "Ryu";
var Slogan = players[selectedPlayer]['Slogan'];
console.log(Slogan);
var players = {
Ryu: {
Name: "Ryu",
Country: "Japan",
Text: "The answer lies in the heart of battle.",
smImg: "../images/small/ryu.png",
lgImg: "../images/large/ryu.jpg",
attack: [1,5,10,15,20,25]
},
ChunLi: {
Name: "Chun Li",
Country: "China",
Slogan: "Want to see my Kung-Fu? I'll show you.",
smImg: "../images/small/chunli.png",
lgImg: "../images/large/chunli.jpg",
attack: [1,4,11,15,21,25]
}
}
「選手」オブジェクトに入り、選択した選手オブジェクトのメンバーにアクセスできるようにする必要があります。私はif文をたくさん書くことができますが、それはあまりクリーンではありません。このようなことをすることはできますか?
var playerOne = {
Name: players.<some variable>.Name,
Country: players.<some variable>.Country,
Slogan: players.<some variable>.Slogan,
smImage: players.<some variable>.smImg,
lgImage: players.<some variable>.lgImg,
Attack: players.<some variable>.attack
};
var playerTwo = {
Name: players.<some variable>.Name,
Country: players.<some variable>.Country,
Slogan: players.<some variable>.Slogan,
smImage: players.<some variable>.smImg,
lgImage: players.<some variable>.lgImg,
Attack: players.<some variable>.attack
};
多分別のものがあります。私はうまくいくものにはオープンです。ありがとうございました。
ありがとうございます、私はそれを動作させることができました。 Ryuのスローガンは、メンバー名を「テキスト」から「スローガン」に変更していたので修正したタイプミスです。しかし、良いキャッチ。 – jusrleb1