将随机数存储在长度为25的数组中

时间:2013-12-28 14:16:33

标签: javascript jquery arrays

我正在尝试创建一个长度为25的数组,并每1秒生成一个随机数并将其添加到此数组中。

但是,我希望一旦达到数组的长度,旧值开始被新随机生成的值替换。到目前为止,这是我到达的地方,我对javascript并不熟悉,所以欢迎任何改进:

var arr = [];
arr.length = 25;

function generate() {
   arr.push(Math.floor(Math.random() * 6) + 1);
}
setInterval(generate, 1000);

任何人都可以告诉我如何将数组的长度强制为25并且一旦达到这个长度就开始用新值替换旧值?我需要将新值添加到数组的末尾,因为这些值将用于生成图形。

由于

4 个答案:

答案 0 :(得分:2)

在数组中添加元素之前,您可以检查数组length。当数组的数组大小达到25时,您可以再次将索引器变量设置为零。

var arr = [];
var i = 0;       
function generate() {
   if(arr.length < 25)
      arr[i++] = Math.floor(Math.random() * 6) + 1;
   else 
      i=0;
}

正如@megawas建议你可以通过将i除以25来使用余数

var arr = [];
var i = 0;       
function generate() {      
      arr[(i++)%25] = Math.floor(Math.random() * 6) + 1;
}

答案 1 :(得分:2)

如果数组的长度为25,您应该只使用 shiftMDN

删除第一个元素
function generate() {
 if( arr.length == 25 ) arr.shift();
 arr.push(Math.floor(Math.random() * 6) + 1);
}

答案 2 :(得分:0)

我们走了:

var arr = []
var arr_position = 0
var arr_length = 25

function generate() {
    arr[arr_position] = Math.floor(Math.random() * 6) + 1
    if(arr_position == arr_length-1){
        arr_position = 0
    } else {
        arr_position++
    }
}

setInterval(generate, 1000)

答案 3 :(得分:0)

var arr = [];
var constant = 25;

function generate() {
   arr.push(Math.floor(Math.random() * 6) + 1);
   if(arr.length == constant){
      arr.splice(0,1);
   }
}
setInterval(generate, 1000);