如何以随机顺序设置包含数组中所有值的textarea的值? 我目前有两个问题:
这是我的代码
var area = document.getElementById('area');
var arr =['www.google.com','www.bing.com','www.yahoo.com','www.codecademy.com','twitter.com'
];
var rand = arr[Math.floor(Math.random()*arr.length)];
for(var i in arr) {
area.value = arr[i];
}
答案 0 :(得分:5)
你实际上只想将数组洗牌,然后用你想要的任何东西加入数组。
例如,使用this answer
中的随机播放功能/**
* Shuffles array in place.
* @param {Array} a items The array containing the items.
* @return {Array} a The shuffled array
*/
function shuffle(a) {
var j, x, i;
for (i = a.length; i; i -= 1) {
j = Math.floor(Math.random() * i);
x = a[i - 1];
a[i - 1] = a[j];
a[j] = x;
}
}
然后像这样使用它:
var area = document.getElementById('area');
var arr =['www.google.com','www.bing.com','www.yahoo.com','www.codecademy.com','twitter.com'];
shuffle(arr);
area.value = arr.join(' '); // or with whatever you want to separate them
检查jsfiddle示例:here
答案 1 :(得分:-1)
您可以尝试通过拼接来删除已经打印过的元素。
var origArr = arr;
for(var i in arr) {
area.value = arr[i];
arr.splice(i, 1);
}