Javascript数组和随机数

时间:2014-09-17 14:01:02

标签: javascript jquery arrays random

我试图为三个随机数字组创建一个循环,这些数字加载到三个不同的无序列表中。

每个列表应该有三个唯一的随机数。我关闭了,但是我的代码加载了相同的数字,我试图做一个for循环,但它似乎加载了相同的数组,我想要三个随机的唯一数组。

$(document).ready(function () {
    var arr = [];
    for (var i = 0, l = 4; i < l; i++) {
        rand = Math.random(3, 7).toFixed(2);
        arr.push('<li>' + 10 + rand * 1 + '</li>')
        $("." + i).append(arr);
    };
});

jsFiddle

3 个答案:

答案 0 :(得分:1)

@Bergi是对的。如果你想要一个3到7之间的数字,实现它的一种方法是3 + 4 * Math.random(),因为Math.random()将返回0到1之间的数字(不包括1)。

另外,如果你想为每个ul创建一个唯一的列表,你可以迭代每个ul并为它创建一个列表,如下所示:

var $lists = $(".1,.2,.3");
$lists.each(function(index, list) {
    var arr = [];
    for (var i = 0, l = 4; i < l; i++) {
        rand = (3+4*Math.random()).toFixed(2);
        arr.push('<li>'+10+ rand * 1+'</li>')
    }
    $(list).append(arr);
});

在这里小提琴:http://jsfiddle.net/qpnf7pog/2/

答案 1 :(得分:1)

你可以试试这个:

$( document ).ready(function() {
var arr = [];
for (var i = 0, l = 1; l < 4; i++) {
    if (i > 0 && i % 3 == 0)
    {
        $(".list"+l).append(arr);
        arr = [];
        l++;
    }

    rand = Math.floor(Math.random()*(7-3+1)+3); // random number between 3 and 7
    arr.push('<li>'+ rand +'</li>');

};

});

http://jsfiddle.net/qpnf7pog/3/

假设这些随机数应在3-7范围内。 希望它有所帮助。

答案 2 :(得分:0)

我认为你想要做的是使用var randomnumber=Math.floor(Math.random()*11)。以下是文档:http://www.javascriptkit.com/javatutors/randomnum.shtml和Math.floor():http://www.w3schools.com/jsref/jsref_floor.asp这将允许指定最大随机数,仅与*之后的内容一样高。