在这个Javascript代码中返回-1,1和0的含义是什么?

Bri*_*ddd 6 javascript

以下是上下文:

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

var values = [0, 6, 8, 5];
values.sort(compare);
alert(values); // 0,5,6,8
Run Code Online (Sandbox Code Playgroud)

确实-1返回最后一个参数?就像-1在数组中使用一样?

Hal*_*Hal 15

比较函数中的否,-1,0和1用于告诉调用者第一个值应该如何相对于第二个值进行排序.-1表示第一个在第二个之前,1表示它在之后,0表示它们是等效的.

sort函数使用您传递的函数中的比较来对函数进行排序.例如,如果您想以相反的顺序排序,则可以创建第3 return 1;行和第5行return -1.


Way*_*ett 6

sort方法采用可选的比较函数,该函数根据以下内容确定生成的排序顺序:

  • 如果其返回值小于零,则排序value1到比索引更低的索引value2
  • 如果它的返回值是零,然后离开的指数value1value2不变相对于彼此
  • 如果其返回值大于零,则排序value1到比索引更高的索引value2

请注意,根据这些规则,可以将比较功能缩短为以下内容:

function compare(value1, value2) {
    return value1 - value2;
}
Run Code Online (Sandbox Code Playgroud)

  • 老实说,我认为这个答案比我的更值得点赞。 (2认同)

Bre*_*ker 5

-1意味着value1小于value2

0意味着value1等于value2

1意味着value1大于value2