Maison  >  Article  >  interface Web  >  js implémente l'obtention aléatoire d'éléments à partir d'un array_javascript skills

js implémente l'obtention aléatoire d'éléments à partir d'un array_javascript skills

WBOY
WBOYoriginal
2016-05-16 16:20:551154parcourir

Connaissances de base :

Copier le tableau :

(1) Copie de parcours de boucle (non recommandé)

Copier le code Le code est le suivant :

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

 (2) La méthode concat() est utilisée pour connecter deux tableaux ou plus. Cette méthode ne modifie pas le tableau existant, mais renvoie uniquement une copie du tableau connecté

.

Copier le code Le code est le suivant :

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

(3) La méthode slice() peut renvoyer des éléments sélectionnés à partir d'un tableau existant

Copier le code Le code est le suivant :

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

Nombre aléatoire :

Math.random()
Math.random(), renvoie un nombre aléatoire de 0 à 1, tel que : 0.4261967441998422

Fonction d'encapsulation personnelle :

Copier le code Le code est le suivant :

fonction getRandom(opt) {
var old_arry = opt.arry,
range = opt.range;
//Empêcher de dépasser la longueur du tableau
plage = plage > old_arry.length?old_arry.length:range;
var newArray = [].concat(old_arry), // Copiez le tableau d'origine pour l'opération sans détruire le tableau d'origine
         valArray = [];
pour (var n = 0; n < plage; n ) {
      var r = Math.floor(Math.random() * (newArray.length));
         valArray.push(newArray[r]);
​​​​ //Supprimez-le dans le tableau d'origine, puis évitez les acquisitions répétées au cycle suivant
newArray.splice(r, 1);
>
Retour valArray;
>
var new_val = getRandom({'arry':[1,6,8,0,3],'range':3});
console.log(new_val);

N'est-ce pas très utile ? C'est un code très pratique ici, il est séparé de mon projet et partagé avec tout le monde. J'espère qu'il sera utile à tout le monde.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn