语法
array.sort(sortfunction)
参数 Values
参数 | 描述 |
---|---|
sortfunction | 可选。规定排序顺序。必须是函数。 |
返回值
Type | 描述 |
---|---|
Array | 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。 |
1.对数组进行排序
var fruits = ["Banana", "Orange", "Apple", "Mango","PB","PA","PBC",,"PBA","pbc","a"];
fruits.sort();
console.log(fruits)
数组反转:
fruits.reverse();
console.log(fruits)
2.对数字进行排序
默认地,sort() 函数按照字符串顺序对值进行排序(即按照UniCode码的顺序进行排序)。
该函数很适合字符串("Apple" 会排在 "Banana" 之前)。
不过,如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。
正因如此,sort() 方法在对数值排序时会产生不正确的结果。
我们通过一个比值函数来修正此问题:
- 按升序排序
var nums = [1,3,8,1314,520,125,888,999,666] nums.sort(function (a,b) { return a-b }) console.log(nums)
-
按降序排序
var nums = [1,3,8,1314,520,125,888,999,666] nums.sort(function (a,b) { return b-a }) console.log(nums)
3.比值函数
比较函数的目的是定义另一种排序顺序。
比较函数应该返回一个负,零或正值,这取决于参数:
function(a, b){return a-b}
当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
实例:
当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100)。
该函数计算 40-100,然后返回 -60(负值)。
排序函数将把 40 排序为比 100 更低的值。
可以使用下面的代码片段来测试数值和字母排序:
var points1 = [40, 100, 1, 5, 25, 10];
var points2 = [40, 100, 1, 5, 25, 10];
function soft1() {
points1.sort();
console.log("字母顺序排序")
console.log(points1);
}
soft1()
function soft2() {
console.log("数字顺序排序")
points2.sort(function(a, b){return a - b});
console.log(points2);
}
soft2()