[英]How to select randomly multiple items, with replacement, from an array in javascript
我有一個包含所有字母加上句號和空格的數組。 我想要做的是隨機選擇大量這些字母(如果多次選擇同一字母都沒關系),然后在屏幕上打印它們。 我到目前為止所獲得的是:
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ".", " "];
for (var i = 0; i <= 10; i++) {
var random_letter = Math.floor(Math.random() * 28);
var result = [];
result[i] = [letters[random_letter]];
document.write(result);
}
但是,當我在Firefox中運行腳本時,得到以下輸出:
X,C,,N,,,A,,,,T,,,,,.,,,,,,N,,,,,,,T,,,,,,,,G,,,,,,,,,O,,,,,,,,,,G
正確包含10個字母和一個空格。 但是它也包含所有這些逗號! 這不是我的數組的一部分。 為什么這件事發生了? 難道我做錯了什么? 任何幫助將非常感激。 亞歷克斯
每次迭代循環時,您都在重新聲明result
。 如果您在外面聲明它應該可以解決問題
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L","M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ".", " "];
var random = [];
for (var i=0; i < 50; i++)
{
var index = Math.floor(Math.random() * 28);
random.push(letters[index]);
}
console.log(random);
https://jsfiddle.net/77vtxxjh/
var letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L","M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ".", " "]; var random = []; for (var j=0; j < 10; j++) { var temp = []; for (var i=0; i < 10; i++) { var index = Math.floor(Math.random() * 28); temp.push(letters[index]); } random.push(temp); } console.log(random);
這是小提琴: https : //jsfiddle.net/s26tvtLx/1/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.