数组随机排列

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

整体思路是:随机一个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

你可能感兴趣的:(数组随机排列)