为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梵蒂冈之花 2018-11-06 09:13:20
有一个数组a=[4,19,23,44,56,1],新建一个数组b,b从a中一次随机选取一个元素,取完为止。用JavaScript实现
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

可以用伪随机对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;
});


查看完整回答
反对 回复 2018-12-10
  • 1 回答
  • 0 关注
  • 709 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号