当用户点击按钮时,下面的代码显示数组中的单个单词。我想要显示前面的单词,所以我正在推动一个新的数组。我想要做的是将my_array.randsplice()的返回值传递给第二个数组,这样我就可以在同一个索引位置显示第二个数组的内容。我正在尝试(不成功)做的是从一个数组中显示一个单词,从第二个数组中显示单词的定义,但我无法弄明白。我是否需要两个数组来完成此操作,或者是否可以拼接包含两组数据的多维数组?任何帮助表示赞赏。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Word List</title>
<style>
.wordList {
text-decoration: none;
color: green;
}
</style>
<script>
Array.prototype.randsplice = function(){
var ri = Math.floor(Math.random() * this.length);
var rs = this.splice(ri, 1);
return rs;
}
var new_array =[];
var my_array = [' Apple',
' Bat',
' Car',
' Dog',
' Elephant',
];
function getWord() {
var result = my_array.randsplice();
new_array.push(result);
document.getElementById('word_list').innerHTML = new_array;
}
</script>
</head>
<body>
<div id="main">
<div class="header">
<h1 id="game_title">Title Here</h1>
<hr>
<button onclick="getWord()">Get Word</button>
<h2 id="word_list_title">Word List:</h2>
<h2 id="word_list" class="wordList"> </h2>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
我认为你要找的是一系列物体。
var dictionary = [
{word: "Apple", meaning: "A red fruit"}, {word: "Bat", meaning: "A nocturnal bird"}
];
然后你可以像这样访问这个词:
dictionary[0].word // "Apple"
这样的意思:
dictionary[0].meaning // "A red fruit"
你需要做的就是获得一个&#34;随机&#34;字典中的单词是替换&#34; 0&#34;随机索引。希望这很清楚!
var ri = Math.floor(Math.random()*dictionary.length);
dictionary[ri].word // Gives a random word
dictionary[ri].meaning // Gives that random words meaning
function getWord() {
var ri = Math.floor(Math.random()*dictionary.length);
document.getElementById('word_list').innerHTML = dictionary[ri].word + ":" + dictionary[ri].meaning;
dictionary.splice(ri, 1);
}
答案 1 :(得分:0)
这个答案的特点是一个以词为关键词和意义词的对象。此外,如果数组为空,Array.prototype.randomSplice
将返回undefined,以供稍后在答案中使用。
Array.prototype.randomSplice = function () {
return this.length && this.splice(Math.random() * this.length | 0, 1) || undefined;
}
var wordList = [],
data = {
Apple: 'An apple a day',
Bat: 'Out of hell',
Car: 'So dirty',
Dog: 'The best friend',
Elephant: 'Remember the life'
},
words = Object.keys(data);
function getWord() {
var word = words.randomSplice();
if (word) {
wordList.push(word);
document.getElementById('word').innerHTML = word;
document.getElementById('wordMeaning').innerHTML = data[word];
document.getElementById('wordList').innerHTML = wordList.join(', ');
}
}
<button onclick="getWord();">Get Word</button>
<h3>Word</h3>
<div id="word"></div>
<h3>Meaning</h3>
<div id="wordMeaning"></div>
<h3>List</h3>
<div id="wordList"></div>