javascript - 一个数组从另一个数组中随机取元素
本文介绍了javascript - 一个数组从另一个数组中随机取元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有一个数组a=[4,19,23,44,56,1],新建一个数组b,b从a中一次随机选取一个元素,取完为止。用JavaScript实现
解决方案
可以用伪随机对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;
});
这篇关于javascript - 一个数组从另一个数组中随机取元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文