美文网首页
JS代码题3

JS代码题3

作者: twentyshaw | 来源:发表于2019-11-12 20:59 被阅读0次

    最大差值

    给定一个未排序的数列,找到此数列在已排序状态下的两个相邻值的最大差值,少于两个值时返回0。例如:给定数列 [1,3,2,0,1,6,8] 则 最大差值为3。

    function differ(arr){
        if (arr.length<2) return 0
        arr.sort(function(a,b){
            return a-b
        })
        var maxDiffer = 0
        for (var i = 0; i < arr.length-1; i++) {
            if (arr[i+1] - arr[i] > maxDiffer) {
                maxDiffer = arr[i+1] - arr[i]
            }
        }
        return maxDiffer
    }
    

    用到了数组方法sort(),复习一下:
    arr.sort()

    • 该操作将arr排序后返回。原数组改变,返回的是排序后的数组。
    • 可以接受一个函数作为参数,不传参的情况下将元素转换为字符串,然后比较它们的UTF-16代码单元值序列
    • 传入一个函数的情况下:按照该函数指定的方法对arr进行排序。
      函数接受两个参数:a,b
      如果函数的返回值小于0,那么a排在b的前面,
      如果函数的返回值等于0,那么a,b保持不动
      *如果函数的返回值大于0,那么a排在b的后面

    相关文章

      网友评论

          本文标题:JS代码题3

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