数组随机排列

今天项目中用到数据随机排列,感觉应该很简单,结果一下子没想起来好的方法,上网搜索一下,感觉写的都好复杂,不过根据其中的一些思路写了下面这段。

整体思路是:随机一个0-数组长度之间的整数作为下标,从数组中取出该下标下的数据存在一个新的数组中,并从该数组中移除,while循环数组长度即可。代码如下:

 1     function sort(list) {
 2         var result = [];
 3         var arr2 = list.concat();
 4         while (arr2.length) {
 5             var len = arr2.length;
 6             var index = Math.floor(Math.random() * len);
 7             result.push(arr2.splice(index, 1)[0]);
 8             console.log(len);
 9         }
10         return result;
11     }
12 
13 //下面是举例应用,数组arr中依次有1-10这10个数字
14     var arr = [];
15     for (let i = 0; i < 10; i++) {
16         arr.push(i + 1);
17     }
18     console.log(sort(arr).toString());//输出这个数组中随机排列的数字

 

转载于:https://www.cnblogs.com/PigpigRun/p/10526088.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值