JS sort()排序

sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。
语法:array.sort(sortfunction)
例:

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

如果a-b > 0,则a和b交换位置。当然这样写出来的话是升序排列。如果要降序排则把a-b改成b-a就

可以实现,就是说b大于a,则b和a交换位置,把大的值排前面。a,b的值就是从arr[0],arr[1]开始比较的,

类似冒泡排序。
例1:表格排序

JS:

var oTab = document.getElementById(‘tab’);

oBtn.onclick = function () {
var arr = [];
var aTr = oTab.tBodies[0].rows;
for (var i = 0; i < aTr.length; i++) {
arr[i] = aTr[i];
}
arr.sort(function (a, b) {
var a1 = parseInt(a.cells[0].innerHTML);
var b2 = parseInt(b.cells[0].innerHTML);
return a1 - b2;
})
for (var i = 0; i < arr.length; i++) {
oTab.tBodies[0].appendChild(arr[i]);
}
}


html:
  
    
ID 姓名 年龄 操作
2 23
6 24
1 e 27
5 24
3 28
4 25

例2:string排序:

var arr = ["A","c","d","Ab"];
arr.sort(function(a,b){
    if(a > b){
        return 1;
    }
}); // ["A", "Ab", "c", "d"]

总结:
1.数组调用sort方法后,会影响本身(而非生成新数组)

2.sort()方法默认是按字符来排序的,所以在对数字型数组排序时,不可想当然的以为会按数字大小排序!

3.要改变默认的sort行为(即按字符排序),可以自行指定排序规则函数

你可能感兴趣的:(JavaScript)