猿问

一个数组从另一个数组中随机取元素

有一个数组a=[4,19,23,44,56,1],新建一个数组b,b从a中一次随机选取一个元素,取完为止。用JavaScript实现

梵蒂冈之花
浏览 710回答 1
1回答

守候你守候我

可以用伪随机对a进行洗牌,取任意两个位置的数字进行交换,如此进行n次达到洗牌效果,然后赋值给b。或者直接按照步骤来,如果不考虑代码效率的话,lodash库提供的数组操作可以使代码更优雅:var src = [4,19,23,44,56,1];var shuffle = [];while(src.length > 0){    var random_index = Math.floor(Math.random() * src.length);     shuffle.push(src[random_index]);          src = src.filter(function(el, i){        return i != random_index;     }); }想到个更好的伪随机方法,直接随机排序,代码更简洁,运行效率高:var src = [4,19,23,44,56,1];var shuffle = src; shuffle.sort(function(){    return Math.floor(Math.random() * 3) - 1; });
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答