js如何从一个数组中随机取出一个元素或者几个元素。
假如数组为
var items = ['1','2','4','5','6','7','8','9','10'];
1.从数组items中随机取出一个元素
var item = items[Math.floor(Math.random()*items.length)];
2.从前面的一篇随机数组中随机取几个元素
function getRandomArrayElements(arr, count) {
var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
var items = ['1','2','4','5','6','7','8','9','10'];
console.log( getRandomArrayElements(items, 4) );
“js随机从数组中取出几个元素”有2个评论
楼主:敲了一遍你的代码,发现轻微改动就可以变成随机重新组合数组了,你看下面的代码
function getRandomArrayElements(arr) {
var shuffled = arr.slice(0),
i = arr.length,
temp,
index;
// console.error(--i);
while (i-- > 0) {
index = Math.floor((i+1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
};
return shuffled.slice(0);
};
var items = ['1','2','4','5','6','7','8','9','10'];
console.log(getRandomArrayElements(items));
没有冒犯的意思,刚刚学习JS不久,仍在努力中,小白菜鸟一枚^-^
http://caibaojian.com/js-random-array.html 跟这个差不多