Heim  >  Artikel  >  Web-Frontend  >  js implementiert das zufällige Abrufen von Elementen aus einem Array_Javascript-Fähigkeiten

js implementiert das zufällige Abrufen von Elementen aus einem Array_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:20:551154Durchsuche

Grundkenntnisse:

Array kopieren:

(1) Schleifendurchlaufkopie (nicht empfohlen)

Code kopieren Der Code lautet wie folgt:

var arry = [1,5,9,7],
new_arry = [],
n = 0,
len = arry.length;
for(;n new_arry.push(arry[n]);
}

 (2) Die concat()-Methode wird verwendet, um zwei oder mehr Arrays zu verbinden. Diese Methode ändert nicht das vorhandene Array, sondern gibt nur eine Kopie des verbundenen Arrays zurück

Code kopieren Der Code lautet wie folgt:

var arry = [1,5,9,7],
new_arry = arry.concat();
console.log(new_arry);

(3) Die Methode „slice()“ kann ausgewählte Elemente aus einem vorhandenen Array zurückgeben

Code kopieren Der Code lautet wie folgt:

var arry = [1,5,9,7],
new_arry = arry.slice(0);
console.log(new_arry);

Zufallszahl:

Math.random()
Math.random() gibt eine Zufallszahl von 0 bis 1 zurück, zum Beispiel: 0,4261967441998422

Persönliche Kapselungsfunktion:

Code kopieren Der Code lautet wie folgt:

Funktion getRandom(opt) {
var old_arry = opt.arry,
range = opt.range;
//Verhindern Sie, dass die Länge des Arrays überschritten wird
range = range > old_arry.length?old_arry.length:range;
var newArray = [].concat(old_arry), //Kopieren Sie das ursprüngliche Array für den Betrieb, ohne das ursprüngliche Array zu zerstören
         valArray = [];
für (var n = 0; n < Bereich; n ) {
      var r = Math.floor(Math.random() * (newArray.length));
         valArray.push(newArray[r]);
​​​​ //Löschen Sie es im ursprünglichen Array und vermeiden Sie dann eine wiederholte Erfassung im nächsten Zyklus
newArray.splice(r, 1);
}
Gibt valArray;
zurück }
var new_val = getRandom({'arry':[1,6,8,0,3],'range':3});
console.log(new_val);

Ist es nicht ein sehr praktischer Code? Hier wird er von meinem Projekt getrennt und ich hoffe, dass er für alle hilfreich ist.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn