繁体   English   中英

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

[英]Storing random numbers in an array of length 25

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

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

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

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

谁能告诉我如何将数组的长度强制设置为25,一旦达到该长度,就开始用新值替换旧值? 我需要将新值始终添加到数组的末尾,因为这些值将用于生成图形。

谢谢

您可以在添加数组元素之前检查数组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;
}

如果数组使用shift MDN长度为25,则应该删除第一个元素

function generate() {
 if( arr.length == 25 ) arr.shift();
 arr.push(Math.floor(Math.random() * 6) + 1);
}

开始了:

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)
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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM