2017-10-09 1 views
1

Erstellen eines Projekts, bei dem Zufallszahlen generiert werden, was mit Math.random() einfach ist. Eine neue Nummer wird alle n Sekunden generiert, und ich möchte die 5 letzten Nummern anzeigen können.Javascript: Speichern zuletzt generierten Zufallszahlen

Das Beste, was ich mir vorstellen konnte, ist ein Array mit allen generierten Zahlen zu erstellen, neue zu schieben und dann die 5 letzten Indizes zu bekommen.

Gibt es einen besseren Weg, nur die 5 neuesten zu speichern, da Tausende von diesen Zahlen generiert werden?

+4

warum drücken und verschieben Sie nicht zur gleichen Zeit – gurvinder372

+0

Was ist der Bereich der Nummer, die Sie anzeigen möchten? – Gautam

+0

Warum ich frage ist, weil, wenn Sie 2 oder 3-stellige Nummer zeigen möchten, dann keine Notwendigkeit haben, Array haben, können Sie versuchen (Math.random() * Math.random()) = einige zufällige lange Zahl wie 0,1612435949049499. Sie können Ziffern aus dieser Zeichenfolge anzeigen. – Gautam

Antwort

2

Das Beste, was ich mit schafft ein Array mit allen erzeugten Zahlen kommen konnte, neue schieben und dann die 5 am meisten letzten Indizes bekommen.

Anstatt nur drängen, tun shift und

var randomArr = []; 
function addRandom() 
{ 
    //var newNum = randomNumber(); 

    if (randomArr.length >= 5) 
    { 
     randomArr.shift(); 
    }  
    randomArr.push(newNum); 
} 

Nun schieben Sie einen Spleiß nicht tun müssen, nehmen Sie nur die randomArr Array gibt.

1

versuchen Sie dies:

var array = [Math.random(), Math.random(), Math.random(), Math.random(), Math.random()]; 
function addToArray() { 
    array.push(Math.random()); 
    array.shift(); 
} 
function getLast5() { 
    return array; 
} 
0

Logic Vielleicht unten wie tun Sie es einfach mit zufälligen Zahlen, die ich Ihnen mit festen Zahlen bin zeigt, um es klar, was hinter den Kulissen geschieht

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] 
0

Mit ECMAScript2016, können Sie tun:

var arr = [1, 2, 3]; 
 
var newNumber = 4; 
 
arr = [ ...arr.slice(1), newNumber ]; 
 
console.log(arr);

Verwandte Themen