Question Obtenir un élément aléatoire du tableau JavaScript [en double]


Cette question a déjà une réponse ici:

var items = Array(523,3452,334,31,...5346);

Comment puis-je obtenir un objet aléatoire de items?


595
2018-05-06 17:47


origine


Réponses:


var item = items[Math.floor(Math.random()*items.length)];

1331
2018-05-06 17:50



Si vraiment tu doit utilisez jQuery pour résoudre ce problème:

(function($) {
    $.rand = function(arg) {
        if ($.isArray(arg)) {
            return arg[$.rand(arg.length)];
        } else if (typeof arg === "number") {
            return Math.floor(Math.random() * arg);
        } else {
            return 4;  // chosen by fair dice roll
        }
    };
})(jQuery);

var items = [523, 3452, 334, 31, ..., 5346];
var item = jQuery.rand(items);

Ce plugin retournera un élément aléatoire si on lui donne un tableau, ou une valeur de [0 .. n) donné un nombre, ou donné autre chose, une valeur aléatoire garantie!

Pour plus de plaisir, le retour du tableau est généré en appelant la fonction récursivement en fonction de la longueur du tableau :)

Démonstration de travail à http://jsfiddle.net/2eyQX/


85
2018-05-06 18:05



Utilisez le trait de soulignement (ou loDash :)):

var randomArray = [
   '#cc0000','#00cc00', '#0000cc'
];

// use _.sample
var randomElement = _.sample(randomArray);

// manually use _.random
var randomElement = randomArray[_.random(randomArray.length-1)];

Ou pour mélanger un tableau entier:

// use underscore's shuffle function
var firstRandomElement = _.shuffle(randomArray)[0];

75
2017-11-23 10:14



var random = items[Math.floor(Math.random()*items.length)]

31
2018-05-06 17:50



1. solution: définir le prototype Array

Array.prototype.random = function () {
  return this[Math.floor((Math.random()*this.length))];
}

cela fonctionnera sur les tableaux en ligne

[2,3,5].random()

et bien sûr des tableaux prédéfinis

list = [2,3,5]
list.random()

2. solution: définir une fonction personnalisée qui accepte les éléments list et returns

get_random = function (list) {
  return list[Math.floor((Math.random()*list.length))];
} 

get_random([2,3,5])

24
2018-06-10 09:20



Voici encore une autre façon:

function rand(items) {
    return items[~~(items.length * Math.random())];
}

19
2018-06-01 02:32



jQuery est JavaScript! C'est juste un framework JavaScript. Donc, pour trouver un élément aléatoire, utilisez simplement du JavaScript ancien, par exemple,

var randomItem = items[Math.floor(Math.random()*items.length)]

13
2018-05-06 17:51



var rndval=items[Math.floor(Math.random()*items.length)];

11
2018-05-06 17:50



var items = Array(523,3452,334,31,...5346);

function rand(min, max) {
  var offset = min;
  var range = (max - min) + 1;

  var randomNumber = Math.floor( Math.random() * range) + offset;
  return randomNumber;
}


randomNumber = rand(0, items.length - 1);

randomItem = items[randomNumber];

crédit:

Fonction Javascript: Générateur de nombres aléatoires


8
2018-05-06 17:52



// 1. Random shuffle items
items.sort(function() {return 0.5 - Math.random()})

// 2. Get first item
var item = items[0]

Plus court:

var item = items.sort(function() {return 0.5 - Math.random()})[0];

7
2018-02-03 19:35



Si vous utilisez node.js, vous pouvez utiliser unique-random-array. Il choisit simplement quelque chose de aléatoire dans un tableau.


3
2018-04-18 00:04