zoukankan      html  css  js  c++  java
  • 【分享】JS打乱数组最高效的方法

    这个方法是我见过对高效的。

    var arr=[];
    for(var i=0;i<100;i++){
    arr[i]
    =i;
    }
    arr.sort(
    function(){ return 0.5 - Math.random() })
    var str=arr.join();
    alert(str);

    代码解释:

    var arr=[];//新建一个数组 这是大家推荐的方式。
    //
    而不推荐使用 var arr=new Array();

    这句不用解释了。

    for(var i=0;i<100;i++){
    arr[i]
    =i;
    }
    //循环给数组赋值

    关键第地方来了

    代码
    arr.sort(function(){ return 0.5 - Math.random() })
    //sort 是对数组进行排序
    //
    他的是这样工作的。每次从数组里面挑选两个数 进行运算。
    //
    如果传入的参数是0 两个数位置不变。
    //
    如果参数小于0 就交换位置
    //
    如果参数大于0就不交换位置
    //
    接下来用刚才的较大数字跟下一个进行比较。这样循环进行排序。

    /*恰好。我们利用了这一点使用了0.5 - Math.random 这个运算的结果要么是大于0,要么是小于0.这样要么交换位置,要么不交换位置。当然大于或者小于0是随即出现的。所以数组就被随即排序了。*/

    后面两句输出给你看的。呵呵。

  • 相关阅读:
    KVC的取值和赋值
    OC中属性的内存管理
    mysql的通信协议
    Proactor模式&Reactor模式详解
    Linux异步IO学习
    Redis 分布式锁的实现原理
    redis过期键
    智能指针
    std::unique_lock与std::lock_guard
    手撕代码
  • 原文地址:https://www.cnblogs.com/idche/p/1722830.html
Copyright © 2011-2022 走看看