私が働いている学校のスペルミーウェブアプリを作成しています。私の考えは、生徒にボタンをクリックさせて、単語の音声をランダムに選択して再生することです。次に、彼らはフォームに単語を書き、訂正のために提出する。ランダムにオブジェクトのオーディオプロパティを選択して再生します
これは私のプロトタイプのコード
第一、言葉名やオーディオファイルを持つオブジェクトです。
var words = {}
words.carrot = {
audio : new Audio ('http://dictionary.cambridge.org/media/english-portuguese/uk_pron/u/ukc/ukcar/ukcarap002.mp3'),
name : "CARROT"
}
words.ball = {
audio : new Audio ('http://dictionary.cambridge.org/us/media/english/us_pron/b/bal/ball_/ball.mp3'),
name : "BALL"
}
次に、オブジェクトのプロパティをランダムに選択する関数。ボタンをクリックすると呼び出されます。
var play = function(){
var list = Object.keys(words);
var randomWord = list[Math.floor(Math.random()*list.length) ];
}
これまでのところ、とても良いです。
私がしていないことは、結果の単語をオブジェクト構文に組み込むことです。
document.getElementById("demoparagraph").innerHTML = randomWord
そして、それは完全に特性の一つを示しています は、テストのために、私は次のことを試してみました。
しかし、これは動作しません:words.randomWord.audio
。それは "undefined"を返します。
words.carrot.audio
はうまくいきます。あなたが動的にこれで可能である変数とオブジェクトのプロパティにアクセスするために探している
あなたはjavascriptオブジェクトを誤解しています。ニンジンは財産であるので、words.carrotは機能します。ニンジンとボールの2つのプロパティを持つオブジェクトを作成しました。 2つのオプションを持つ配列ではありません。 – samuelmr
ブラケット表記 'words [randomWord] .audio' – jcubic
を使用する必要があります。ありがとう! – Evan