• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

全网唯一js数组排序方法(自创排序)

互联网 diligentman 2个月前 (02-26) 18次浏览

排序原理:首先找到数组中的最大值,从0开始每次加1(0,1,2,3,…,max)。然后判断数组中的数是否等于它,等于就丢到新数组,完成排序

排序运用了一个取数组最大值的方法。如下

var max = Math.max.apply(null,arr)
 function zichuang(arr){ //参数是任意一个数组
        var max = Math.max.apply(null,arr); // 取数组最大值 别疑惑 这一步很简单(Math.max.apply()取数组最大值的方法)  
        // console.log(max)
        var newArr = []; // 创建一个新数组
        for(var i = 0; i <= max;i++){ // 第一层循环是从0开始到最大值max结束
            for(var j = 0;j < arr.length;j++){ // 第二层是遍历老数组
                if(arr[j] == i){
                    newArr.push(arr[j]) // 如果数组中有一个数等于第一层循环中的数 就往新数组中添加
                }
            }
        }
        return newArr
    }
    console.log(zichuang([4,2,1,6,3,8])) // 最后输出[1,2,3,4,6,8]

排序缺点:循环次数过多,和计数排序的循环次数一样。就是如果数组是[1,1000]它还是会循环1000次,因为它至少会循环数组最大值的值得次数。

排序优点:可以同时完成排序,去重,计数。


程序员灯塔
转载请注明原文链接:全网唯一js数组排序方法(自创排序)
喜欢 (0)