sort() 方法用于对数组的元素进行排序
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
示例:
const arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
console.log(arr.sort());
// 打印结果 Adrew,George,James,John,Martin,Thomas
const arr2 = new Array(6)
arr2[0] = "10"
arr2[1] = "5"
arr2[2] = "40"
arr2[3] = "25"
arr2[4] = "1000"
arr2[5] = "1"
console.log(arr2.sort());
// 打印结果 1,10,1000,25,40,5
上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数.
自定义排序函数,示例,排序一个数组,每个元素是一个对象,对象中某个属性值为数字,进行升降排序。
/**
*参数说明
*@parameters
* obj1, obj2: 数组中每个对比的对象
*/
const compareList = function(obj1, obj2, desc) {
const val1 = parseInt(obj1.num);
const val2 = parseInt(obj2.num);
if(val1 < val2) {
return 1;
}
if(val1 > val2) {
return -1;
}
return 0;
};
// 定义个数组
const JustList = [
{
name: '小明',
num: '1234',
},
{
name: '小张',
num: '888',
},
{
name: '小王',
num: '999',
},
];
console.log(JustList .sort(compareList ));
// 打印的结果
[
{
name: '小明',
num: '1234',
},
{
name: '小王',
num: '999',
},
{
name: '小张',
num: '888',
},
];
如果想要升序的,将return的 正负1互换一下就可以。