关于js 的排序问题

大家中秋快乐哈
关于js 的排序问题

function compare(value1, value2) {
    if (value1 < value2) {
        return -1;
    } else if (value1 > value2) {
        return 1;
    } else {
        return 0;
    }
}

var vaules = [0, 1, 5, 10, 15];
values.sort(compare);

为什么这样可以升序排列,return返回的值是放在哪里的,有谁能解释明白点的吗

阅读 3.4k
5 个回答

return的值是返回给sort方法的内部循环,其原理就是冒泡或是快排方法进行数组对比,传入的函数参数就是对两值进行对比判断,通过返回值进行替换或是保持原状。

.sort([function(a,b)]),sort里面带的参数是个函数,表示排序的方式。其中a,b表示数组中的任意两个元素,返回值 1,-1,0来表示啊a,b前后的关系

W3school--JavaScript sort() 方法

function compare(value1, value2) {
    if (value1 < value2) {
        return -1;
    } 
}

var vaules = [0, 1, 5, 10, 15];
values.sort(compare);

返回1 按照倒序排列, 返回-1按照正序排列

函数只需要有一个判断就行,

compare 函数会在 sort 中被调用,作为是比较函数

values 中的值,根据排序算法,会多次选取两个值 value1 和 value2,传入比较函数

  • 返回-1,表示经过排序,value1 需要在 value2 的前面
  • 返回1,表示经过排序,value1 需要在 value2 的后面
  • 返回0,表示经过排序,value1 和 value2 被认为相同,具体顺序因 sort 算法不一样不确定
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏