将返回值从一个数组传递到另一个数组

时间:2015-09-24 18:08:17

标签: javascript arrays

当用户点击按钮时,下面的代码显示数组中的单个单词。我想要显示前面的单词,所以我正在推动一个新的数组。我想要做的是将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>

2 个答案:

答案 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>