不要删除
0、比较函数概念
该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
function(x, y){
return x - y;
}
1、对纯粹的英文字符串进行排序
arr.sort();
此方法不会考虑值的大小。
var arr = [33, 3, 6, 2, 4, 1, 5];
console.log(arr.sort())
输出:[1, 2, 3, 33, 4, 5, 6]
2、升序排序
<script>
var a = ["Java","C","C++","JavaScript","jQuery","PHP","Python"];
a.sort();
console.log(a);
</script>
输出:[“C”, “C++”, “Java”, “JavaScript”, “PHP”, “Python”, “jQuery”]
在英文编码中,小写字母比大写字母大,所以"jQuery"被排在了最后。
- 如需降序:
console.log(a.reverse());
即可
3、升序排序,不区分大小写
<script>
var a = ["Java","C","C++","JavaScript","jQuery","PHP","Python"];
a.sort(function (x, y) {
if(x.toLowerCase()>y.toLowerCase())
return 1;
else if(x.toLowerCase()<y.toLowerCase())
return -1;
else return 0;
});
console.log(a);
</script>
输出:[“C”,“C++”,“Java”,“JavaScript”,“jQuery”,“PHP”,“Python”]
4、数值升序排序
<script>
var a = [5,10,110,55,265,8,1];
a.sort(function (x, y) {
return x-y;
});
console.log(a);
</script>
输出:[1, 5, 8, 10, 55, 110, 265]
5、中文数组按拼音排序
<script>
var a = ["北京","南京","上海","深圳","哈尔滨","呼和浩特","南宁"];
a.sort(function (x,y) {
return x.localeCompare(y,"zh");
});
console.log(a);
</script>
输出:["北京", "哈尔滨", "呼和浩特", "南京", "南宁", "上海", "深圳"]
6、对象数组排序
<script>
var a = [
{
no:"001",
name:"张琪",
score:80
},
{
no:"002",
name:"李颖",
score:72
},
{
no:"003",
name:"李新宇",
score:75
},
{
no:"004",
name:"王华",
score:72
},
{
no:"005",
name:"刘江",
score:82
}
];
a.sort(function (x,y) {
return y.score-x.score;
});
console.log(a);
</script>
输出:
- 0: {no: “005”, name: “刘江”, score: 82}
- 1: {no: “001”, name: “张琪”, score: 80}
- 2: {no: “003”, name: “李新宇”, score: 75}
- 3: {no: “002”, name: “李颖”, score: 72}
- 4: {no: “004”, name: “王华”, score: 72}
../../md/JS+ES6/
不要删除