js随机从数组中取出几个元素

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随机从数组中取出几个元素 ,未经许可,禁止转载,©版权所有
原文出处:前端开发博客 (http://caibaojian.com/js-get-random-elements-from-array.html)

发表评论

请登录后发表评论:

“js随机从数组中取出几个元素”有2个评论

  1. 小顽童---阳阳

    楼主:敲了一遍你的代码,发现轻微改动就可以变成随机重新组合数组了,你看下面的代码
    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不久,仍在努力中,小白菜鸟一枚^-^

    登录回复