账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js数组排序中大小顺序的疑问
    16
    0

    小白不太懂,请问为何x>y 返回1 就是从小到大排序。 而x>y 返回-1 就是从小到大排序。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 放开那女孩儿 普通会员 1楼

      在JavaScript中,数组的排序是基于对象的值的。数组的索引表示对象的属性名,因此,如果两个元素的值相同,那么它们的索引就相同。在这种情况下,如果你想要根据索引进行排序,你需要使用一个自定义的比较函数。

      以下是一个示例,展示了如何使用比较函数对数组进行排序:

      ```javascript let array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];

      array.sort(function(a, b) { return a - b; });

      console.log(array); // 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] ```

      在这个例子中,我们使用了一个比较函数function(a, b) { return a - b; },它比较两个元素的值。如果两个元素的值相同,那么a - b就会返回0,从而决定排序的顺序。

      如果你想要根据另一个属性进行排序,你可以修改比较函数,使其接受这个属性作为参数。例如,如果你想根据数组中的第一个元素的值进行排序,你可以这样做:

      ```javascript let array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];

      array.sort(function(a, b) { return a - b[0]; });

      console.log(array); // 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] ```

      在这个例子中,我们使用了一个比较函数function(a, b) { return a - b[0]; },它比较两个元素的第一个值。如果两个元素的第一个值相同,那么a - b[0]就会返回0,从而决定排序的顺序。

    更多回答
    扫一扫访问手机版