原生js实现数组随机排序方法

方法一:遍历当前数组,并创建一个暂存容器,每次遍历时,出现一个随机索引,使用随机索引,获取数组中一个随机的值,取出到暂存容器,然后根据当前循环次数的索引,获取数组中的值,放入原来取出的地方,最后把暂存容器的值,赋值给当前循环次数的索引的值,实现随机排序;(即三个容器间的交互)

var arr = [1,2,3,4,5,6,7,8,9,10];

function randSort1(arr){

    for(var i = 0,len = arr.length;i < len; i++ ){

    var rand = parseInt(Math.random()*len);

    var temp = arr[rand];

          arr[rand] = arr[i];

            arr[i] = temp; }

            return arr;

}

console.log(randSort1(arr));


方法二:遍历数组,生成随机索引,通过随机索引,把原数组中的值取出,放入新数组,然后通过数组方法,Array.splice()删除原数组中的值,实现随机排序

var arr = [1,2,3,4,5,6,7,8,9,10];

function randSort2(arr){

    var mixedArray = [];

    while(arr.length > 0){

        var randomIndex = parseInt(Math.random()*arr.length);         mixedArray.push(arr[randomIndex]);

         arr.splice(randomIndex, 1);

      }

     return mixedArray;

}

console.log(randSort2(arr));


方法三:通过数组中的sort方法实现,return一个Math.random()-0.5

var arr = [1,2,3,4,5,6,7,8,9,10];

arr.sort(function(){

    return Math.random() - 0.5;

})

console.log(arr);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,060评论 0 2
  • 某次二面时,面试官问起Js排序问题,吾绞尽脑汁回答了几种,深感算法有很大的问题,所以总计一下! 排序算法说明 (1...
    流浪的先知阅读 1,222评论 0 4
  • 排序算法说明 (1)排序的定义:对一序列对象根据某个关键字进行排序; 输入:n个数:a1,a2,a3,…,an 输...
    code武阅读 682评论 0 0
  • 数组排序在日常编程中用到的其实还是比较多的,比如把一组数据按时间排序,按首字母排序,按大小排序等等,那么就让我们一...
    xueNoble阅读 2,178评论 0 9
  • /*去重*/ function delRepeat(arr){ var newArray=new Array();...
    Hedgehog_Dove阅读 1,892评论 0 2