[英]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.