Javascript:存储最后生成的随机数

时间:2017-10-09 09:57:50

标签: javascript arrays

制作一个涉及生成随机数的项目,使用Math.random()很容易。每n秒生成一个新数字,我希望能够显示最近的5个数字。

我能想到的最好的方法是创建一个包含所有生成数字的数组,推送新数据,然后获取5个最新索引。

有没有更好的方法只能存储最近的5个,因为会产生数千个这些数字?

4 个答案:

答案 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)