JS中的sort()方法用于将数组排序,并返回排序后的新数组。
(1)定义一个数组,直接调用sort()方法时按Unicode编码对数组进行排序,会直接改变原数组
arr = [ "sun","zhu","sha","zhnag","lis","xig"];
arr1 = arr.sort();
console.log(arr1);
结果:
["lis", "sha", "sun", "xig", "zhnag", "zhu"]
(2)对Number型数据进行排序
arr = ["1","7","5","3","9","2","3","8","4"];
arr1 = arr.sort();
console.log(arr1);
结果:
["1", "2", "3", "3", "4", "5", "7", "8", "9"]
arr = [1,7,5,3,9,2,3,8,4];
arr1 = arr.sort();
console.log(arr1);
结果:
[1, 2, 3, 3, 4, 5, 7, 8, 9]
此外,可以根据需要自己指定排序规则,可在sort()方法中添加一个回调函数 指定排序规则
语法:
arrayObject.sort(sortby);
其中sortby是一个回调函数,用来指定排序规则
回调函数中需要定义两个形参:sortby(a, b),浏览器将会分别使用数组中的元素作为实参去调用回调函数
function sortby(a, b){
return a-b ;
// return b-a ;
}
arr = [1,7,5,3,9,2,3,8,4];
arr1 = arr.sort(sortby);
console.log(arr1);
结果:
[1, 2, 3, 3, 4, 5, 7, 8, 9]
修改sortby函数,则可指定新的排序规则
function sortby(a, b){
//return a-b ;
return b-a ;
}
arr = [1,7,5,3,9,2,3,8,4];
arr1 = arr.sort(sortby);
console.log(arr1);
结果:
[9, 8, 7, 5, 4, 3, 3, 2, 1]
浏览器会根据回调函数会的返回值来决定元素的顺序,返回值大于0时,交换两元素的位置,小于等于0则位置不变。