zoukankan      html  css  js  c++  java
  • 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));

    广州品牌设计公司https://www.houdianzi.com PPT模板下载大全https://redbox.wode007.com

    方法三:

    通过数组中的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);
  • 相关阅读:
    POJ2456 Aggressive cows
    Binary Search
    Leetcode1025 Divisor Game
    我的高中生活目标
    leetcode155 min stack
    Leetcode983 Minimum Cost For Tickets
    合并两个有序数组
    X的平方根
    力扣第35场双周赛
    整数反转
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/14124522.html
Copyright © 2011-2022 走看看