-1

我将不胜感激将随机数生成器添加到空数组中的一些帮助。

你能告诉我如何在javascript中做到这一点。我已经输出了随机数-随机数字数组-然后随机选择该数组并输出该数字。每次按下随机按钮时,我将如何制作另一个数组来存储值?

    // Suites

var suites= new Array();
suites[0] = "Hearts";
suites[1] = "Spades";
suites[2] = "Diamonds";
suites[3] = "Clubs";

    // Values

var values = new Array();
values[0] = "Ace";
values[1] = "King";
values[2] = "Queen";
values[3] = "Jack";
values[4] = "2";
values[5] = "3";
values[6] = "4";
values[7] = "5";
values[8] = "6";
values[9] = "7";
values[10] = "8";
values[11] = "9";
values[12] = "10";    

function myFunction()
{
    var x=document.getElementById("demo")
    var y=document.getElementById("demo2")
    x.innerHTML= values[Math.floor((Math.random())*12)]
    y.innerHTML= suites[Math.floor((Math.random())*4)]
}

http://jsfiddle.net/Eddybaby/RmtkF/

4

2 回答 2

0

使用push更新数组:

var storeArray = [];

function onButtonPress(newValue){
    //do other stuff here?
    storeArray.push(newValue);
}
于 2013-06-20T20:35:09.447 回答
0

我会建议一个更干净的 OOP 解决方案。使用card对象构造函数来存储每张卡片,因此您可以轻松地将其传递并使用 push 将其存储在数组中。

http://jsfiddle.net/WLuu4/

var dealistory = new Array(); //array that will hold all cards generated

//card constructor
function card(value, suite){ 
    return ({
        'value': value,
        'suite': suite
    });
}

//random card generator
function randomCard(){

    var suites = ["Hearts","Spades","Diamonds","Clubs"];
    var values = ["Ace","King","Queen","Jack","2","3","4","5","6","7","8","9","10"];

    var s = values[Math.floor((Math.random()) * 12)];
    var v = suites[Math.floor((Math.random()) * 4)];

    return card(s, v);
}

//deal button action
deal.onclick = function(){

    var newCard = randomCard();

    document.getElementById("demo").innerHTML = newCard.value;
    document.getElementById("demo2").innerHTML = newCard.suite;

    dealHistory.push(newCard); //add card to history array
    console.log(dealHistory);
}

dealHistory 数组示例:
在此处输入图像描述


编辑:

我添加了一个printCard为每张卡片生成 html 的函数和一个printHist遍历历史数组调用printCard以在屏幕上显示每个项目的函数。

http://jsfiddle.net/WLuu4/1/

在此处输入图像描述

//generate html for a card
function printCard(card){

    var cardHTML = '';
    cardHTML+='<div class="card">';
    cardHTML+='<div class="suite">'+card.suite+'</div>'
    cardHTML+='<div class="value">'+card.value+'</div>'
    cardHTML+='</div>';

    return cardHTML;
}

//generate html for each card in an array
function printHist(array){
    var html="";
    for(var i=0; i<array.length; i++){
        html += printCard(array[i]);
    }
    return html;
}
于 2013-06-20T22:24:02.403 回答