Obter um item random da matriz JavaScript

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

Como obtenho itens randoms de items ?

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

Se você realmente precisa usar o jQuery para resolver este problema:

 (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); 

Este plugin irá retornar um elemento random se for dado um array, ou um valor de [0 .. n) dado um número, ou dado qualquer outra coisa, um valor random garantido!

Para diversão extra, o retorno da matriz é gerado chamando a function recursivamente com base no tamanho da matriz 🙂

Demonstração de trabalho em http://jsfiddle.net/2eyQX/

Use sublinhado (ou loDash :)):

 var randomArray = [ '#cc0000','#00cc00', '#0000cc' ]; // use _.sample var randomElement = _.sample(randomArray); // manually use _.random var randomElement = randomArray[_.random(randomArray.length-1)]; 

Ou para embaralhar uma matriz inteira:

 // use underscore's shuffle function var firstRandomElement = _.shuffle(randomArray)[0]; 
 var random = items[Math.floor(Math.random()*items.length)] 

1. solução: defina o protótipo de matriz

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

que funcionará em matrizes inline

 [2,3,5].random() 

e, claro, matrizes predefinidas

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

2. solução: define a function customizada que aceita lista e retorna o elemento

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

Aqui está outro jeito:

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

jQuery é JavaScript! É apenas um framework JavaScript. Então, para encontrar um item random, basta usar JavaScript antigo simples, por exemplo,

 var randomItem = items[Math.floor(Math.random()*items.length)] 
 var rndval=items[Math.floor(Math.random()*items.length)]; 
 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édito:

Função Javascript: Gerador de Números Aleatórios

 // 1. Random shuffle items items.sort(function() {return 0.5 - Math.random()}) // 2. Get first item var item = items[0] 

Mais curta:

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

Se você estiver usando node.js, poderá usar o array random exclusivo . Ele simplesmente escolhe algo random de uma matriz.

Uma maneira alternativa seria adicionar um método ao protótipo Array:

  Array.prototype.random = function (length) { return this[Math.floor((Math.random()*length))]; } var teams = ['patriots', 'colts', 'jets', 'texans', 'ravens', 'broncos'] var chosen_team = teams.random(teams.length) alert(chosen_team) 
 const ArrayRandomModule = { // get random item from array random: function (array) { return array[Math.random() * array.length | 0]; }, // [mutate]: extract from given array a random item pick: function (array, i) { return array.splice(i >= 0 ? i : Math.random() * array.length | 0, 1)[0]; }, // [mutate]: shuffle the given array shuffle: function (array) { for (var i = array.length; i > 0; --i) array.push(array.splice(Math.random() * i | 0, 1)[0]); return array; } }