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,92、通过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: 前后两个数相等