sort

作者: Iterate | 来源:发表于2021-02-15 12:21 被阅读0次

    sort 判断是根据 返回正负来排序的
    正的在最后面插入
    负的在最前面插入

    var arrA = [6,2,4,3,5,1];
    arrA.sort( function(x, y) {
      if (x % 2 ==0) return 1;
      if (x % 2 !=0) return -1;
    });
    document.writeln(arrA); //输出:1,5,3,6,2,4
    

    JS生成随机打乱数组的方法示例

    方法一:最精简代码的打乱方法

    // An highlighted block
    var arr = [4,1,67,12,45,121,3];
    arr.sort(function() {
        return (0.5-Math.random());
    });
    console.log(arr);
    

    这里介绍下sort()函数,在JS中Array对象里内置了一个函数:

    arrayobj.sort([sortfunction])

    此方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

    sortFunction为可选项。

    是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
    sortFunction方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

    方法二:这个方法打得比较乱

    var Arr = [4,1,67,12,45,121,3];
    function randArr(arr) {
        for (var i = 0; i < arr.length; i++) {
            var iRand = parseInt(arr.length * Math.random());
            var temp = arr[i];
            arr[i] = arr[iRand];
            arr[iRand] = temp;
        }
        return arr;
    }
    //测试:
    console.log(randArr(Arr));
    

    随机播放列表案例
    首先要明确,我们对播放列表打乱的前提是不能对原数组进行更改的。

    //获取min和max之间的一个随机整数[5,100];
    function getRandomInt(min,max){
        return Math.floor(Math.random()*(max-min+1))+min;
    }
    
    //打乱数组
    function shuffle(arr){
        let _arr = arr.slice(); //slice不会影响原来的数组,但是splice就会影响原来的arr数组
        for (let i = 0; i<_arr.length; i++;){
            let j = getRandomInt(0,i);
            let t = _arr[i];
            _arr[i] = _arr[j];
            _arr[j] = t;
        }
        return _arr;
    }
    

    相关文章

      网友评论

          本文标题:sort

          本文链接:https://www.haomeiwen.com/subject/blupxltx.html