js中的.sort()函数可以用来对数组进行排序,它支持多种排序方式,可以根据需要来实现不同的排序结果。
1. 对数字进行排序
// 排序前 var nums = [3, 1, 5, 2, 4]; // 排序后 nums.sort(function(a, b) { return a - b; }); // nums = [1, 2, 3, 4, 5]
上面的代码中,sort()函数接收一个比较函数,该函数需要返回一个大于0的值,表示a大于b,返回0表示a等于b,返回小于0的值表示a小于b。
2. 对字符串进行排序
// 排序前 var strs = ['apple', 'banana', 'pear']; // 排序后 strs.sort(); // strs = ['apple', 'banana', 'pear']
上面的代码中,sort()函数默认按照字母表顺序进行排序,如果要按照字符串长度进行排序,可以使用以下代码:
strs.sort(function(a, b) { return a.length - b.length; }); // strs = ['pear', 'apple', 'banana']
3. 对对象数组进行排序
// 排序前 var objs = [ {name: 'John', age: 20}, {name: 'Tom', age: 18}, {name: 'Alice', age: 22} ]; // 排序后 objs.sort(function(a, b) { return a.age - b.age; }); // objs = [{name: 'Tom', age: 18}, {name: 'John', age: 20}, {name: 'Alice', age: 22}]
上面的代码中,sort()函数接收一个比较函数,该函数可以根据指定的字段来比较两个对象,从而实现对对象数组的排序。
4. 结合使用sort()和map()函数
// 排序前 var nums = [3, 1, 5, 2, 4]; // 排序后 var result = nums.map(function(num) { return num * 2; }).sort(function(a, b) { return a - b; }); // result = [2, 4, 6, 8, 10]
上面的代码中,sort()函数和map()函数结合使用,可以实现将数组中的每个元素乘以2,按照从小到大的顺序排序的效果。
5. 使用sort()函数排序对象数组
// 排序前 var objs = [ {name: 'John', age: 20}, {name: 'Tom', age: 18}, {name: 'Alice', age: 22} ]; // 排序后 objs.sort(function(a, b) { if (a.name < b.name) { return -1; } else if (a.name > b.name) { return 1; } else { return 0; } }); // objs = [{name: 'Alice', age: 22}, {name: 'John', age: 20}, {name: 'Tom', age: 18}]
上面的代码中,sort()函数接收一个比较函数,该函数可以根据指定的字段来比较两个对象,从而实现对对象数组的排序。
js中的.sort()函数可以用来对数组进行排序,它支持多种排序方式,可以根据需要来实现不同的排序结果。