北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

你真的理解sort()函数吗?_sort函数的原理



sort()函数是javascript中自带函数,这个函数的功能是排序。

1、使用sort()函数时,函数参数如果不设置的话,以默认方式进行排序,就是以字母顺序进行排序,准确的讲就是按照字符编码的顺序进行排序。

var arr = [3,2,3,34,12,23,234,84,9];
arr.sort();
// 结果: 12,2,23,234,3,3,34,84,9

2、通过sort(sortby)函数自定义排序的逻辑

// 升序
var arr = [3,2,3,34,12,23,234,84,9];
arr.sort(function (a, b) {
    return a - b;
});
// 结果:2,3,3,9,12,23,34,84,234
 
// 降序
var arr = [3,2,3,34,12,23,234,84,9];
arr.sort(function (a, b) {
    return b - a;
});
// 结果:234,84,34,23,12,9,3,3,2

对于一个普通的数组排序在开发中,很少用。

3、在做前端开发时,往往要配合后端的开发,而前后台的交互现在大都是用json格式的数据,比如这样的数据:

// 根据“age”排序
var arr = {
    "user":[
        { "name": "has",   "age": 17, "height": 165 },
        { "name": "saf",   "age": 20, "height": 172 },
        { "name": "gngh",  "age": 45, "height": 182 },
        { "name": "yjerw", "age": 42, "height": 156 },
        { "name": "cvb",   "age": 22, "height": 176 },
        { "name": "wetty", "age": 32, "height": 178 },
        { "name": "aDNY",  "age": 34, "height": 175 }
     ]
};
var users = arr.user;
users.sort(function (a, b) {
    return a.age - b.age;
});
// 返回
[
	{name: 'has', age: 17, height: 165},
	{name: 'saf', age: 20, height: 172},
  ...
]
// 根据name排序
var arr = {
    "user":[
        { "name": "has",   "age": 17, "height": 165 },
        { "name": "saf",   "age": 20, "height": 172 },
        { "name": "gngh",  "age": 45, "height": 182 },
        { "name": "yjerw", "age": 42, "height": 156 },
        { "name": "cvb",   "age": 22, "height": 176 },
        { "name": "wetty", "age": 32, "height": 178 },
        { "name": "aDNY",  "age": 34, "height": 175 }
     ]
};
var users = arr.user;
users.sort(function (a, b) {
    return a.name - b.name;
});

总结:

a - b < 0: 代表后一个比前一个大,就是升序

b - a < 0: 代表前一个比后一个大,就是降序

a - b = 0 或 b - a = 0: 前后两个数相等

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言