制作一个涉及生成随机数的项目,使用Math.random()很容易。每n秒生成一个新数字,我希望能够显示最近的5个数字。
我能想到的最好的方法是创建一个包含所有生成数字的数组,推送新数据,然后获取5个最新索引。
有没有更好的方法只能存储最近的5个,因为会产生数千个这些数字?
答案 0 :(得分:2)
我能想到的最好的就是创建一个包含所有数组的数组 生成数字,推新数字,然后获得最多5个 最近的指数。
而不仅仅是推动,执行shift并推送
var randomArr = [];
function addRandom()
{
//var newNum = randomNumber();
if ( randomArr.length >= 5 )
{
randomArr.shift();
}
randomArr.push( newNum );
}
现在您不需要进行拼接,只需按原样取randomArr
数组。
答案 1 :(得分:1)
试试这个:
var array = [Math.random(), Math.random(), Math.random(), Math.random(), Math.random()];
function addToArray() {
array.push(Math.random());
array.shift();
}
function getLast5() {
return array;
}
答案 2 :(得分:0)
逻辑也许就像下面用随机数字做的那样我用固定的数字向你展示,以便更清楚地了解幕后发生的事情
var randomNumbers= [];
randomNumbers.push(2); // randomNumbers is now [2]
randomNumbers.push(5); // randomNumbers is now [2, 5]
randomNumbers.push(7); // randomNumbers is now [2, 5, 7]
randomNumbers.push(9); // randomNumbers is now [2, 5, 7, 9]
randomNumbers.push(1); // randomNumbers is now [2, 5, 7, 9, 1]
randomNumbers.shift(); // randomNumbers is now [5, 7, 9, 1]
randomNumbers.push(10); // randomNumbers is now [5, 7, 9, 1, 10]
答案 3 :(得分:0)
使用ECMAScript2016,您可以:
set_x(value)