Ich erstelle eine Rechtschreibung Biene Web-App für die Schule, die ich arbeite. Meine Idee ist, die Schüler auf einen Knopf klicken zu lassen, der zufällig den Ton eines Wortes auswählt und spielt. Dann schreiben sie das Wort auf das Formular und reichen es zur Korrektur ein.Nach dem Zufallsprinzip wählen und spielen Audio-Eigenschaft des Objekts
Das ist mein Prototyp Code
1., ein Objekt mit den Worten Namen und Audiodateien.
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"
}
Dann eine Funktion, die zufällig eine Eigenschaft des Objekts auswählt. Es würde durch Klicken auf eine Schaltfläche aufgerufen werden.
var play = function(){
var list = Object.keys(words);
var randomWord = list[Math.floor(Math.random()*list.length) ];
}
So weit, so gut.
Was ich nicht geschafft habe, ist, das resultierende Wort wieder in die Objektsyntax einzubauen. Aus Gründen der Prüfung habe ich versucht, die folgenden:
document.getElementById("demoparagraph").innerHTML = randomWord
Und es zeigt perfekt eine der Eigenschaften.
Aber das funktioniert nicht: words.randomWord.audio
. Es gibt "undefined" zurück.
Wohingegen words.carrot.audio
funktioniert gut.
Sie missverstehen Javascript-Objekte. words.carrot funktioniert, weil Karotte eine Eigenschaft ist. Sie haben ein Objekt mit zwei Eigenschaften, Karotte und Ball, erstellt. Kein Array mit zwei Optionen. – samuelmr
Sie müssen Bracket-Notation 'words [randomWord] .audio' verwenden – jcubic
Die Klammernnotation funktionierte! Vielen Dank! – Evan