- arr.sort() 排序,排序分为默认排序和自定义排序;
默认排序,该方法会调用每个数组项的toString()方法,然后按照字符序列排序 ;
自定义排序,该排序应该考虑分很多种,有纯数字排序,纯单个字母排序,多字母单词排序,按要求对数组内的对象进行排序等等。
排序除了数组项的要求以外还存在升序/降序的要求。
var arr = [3, 4, 1, 2, 11, 112, 89];
// var arr = ['tom','terry','fairy','ronda'];
console.log('原数组:', arr); // [3, 4, 1, 2, 11, 112, 89]
// console.log(arr.sort()) // [1, 11, 112, 2, 3, 4, 89] --> 由此可以看出,其实这个默认排序的结果一般都不会是我们想要的结果
// console.log(arr) // [1, 11, 112, 2, 3, 4, 89]
// 更多时候,我们是希望得到从大到小或者从小到大的排序结果
// 因此,我们自己定义一个比较函数
function compare(a,b){
/* if(a>b)
return 1;
return -1 */
// 三目运算简化
return a>b?1:-1
}
console.log(arr.sort(compare)) // [1, 2, 3, 4, 11, 89, 112]
console.log(arr) // [1, 2, 3