簡體   English   中英

在Javascript中,如何從列表中生成隨機元素?

[英]In Javascript, how do I generate a random element out of a list?

假設我有一個字符串列表。 如何生成隨機的?

你的意思是,獲得一個隨機數組成員?

var strings = ['a', 'b', 'c'];

var randomIndex = Math.floor(Math.random() * strings.length);

var randomString = strings[randomIndex];

在jsFiddle上看到它

如果你的意思是隨機字符串,那就有點不同了。

var randomStrLength = 16,
    pool = 'abcdefghijklmnopqrstuvwxyz0123456789',
    randomStr = '';


for (var i = 0; i < randomStrLength; i++) {
     var randomChar = pool.charAt(Math.floor(Math.random() * pool.length));
     randomStr += randomChar;   
}

在jsFiddle上看到它

當然,您可以跳過pool變量並使用97( 'a'.charCodeAt(0) )和122( 'z'.charCodeAt(0) )之間的隨機數對String.fromCharCode() )執行小寫字母等操作。但是根據您想要的范圍(小寫和大寫,加上特殊字符),使用池不太復雜。

亞歷克斯和馬赫什是正確的,只是想展示如果我覺得生活危險,我將如何實施他們的解決方案。 我做的。

Array.prototype.chooseRandom = function() {
  return this[Math.floor(Math.random() * this.length)];
};
var a = [1, 2, 3, 4, 5];
a.chooseRandom(); // => 2
a.chooseRandom(); // => 1
a.chooseRandom(); // => 5
var randomString = myStrings[Math.floor(Math.random() * myStrings.length)]
var rand = 0; 
var newPic = []; 
var pic = [1,2,3] //length = 18 for ( var i=0; i<18; i++ ){ 
    rand = Math.floor(Math.random()*19); 
    newPic.push(pic[rand-1].slice()); 
} alert(newPic); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM