js数组的高级方法
一.数组高级方法之排序
数组中存在两个可以直接用来重排序的方法:reverse()和sort()
1.reverse()方法
reverse()方法会对数组进行翻转。只是单纯的调转数组项目的整体顺序而已。
var arr1 = [1, 2, 3, 4, 5]; var arr2 = arr1.reverse(); console.log(arr1);// [5, 4, 3, 2, 1] console.log(arr2);// [5, 4, 3, 2, 1]
2.sort()方法
sort()方法用于对数组的元素进行排序,并返回新数组,这个方法会改变原数组
①.sort()方法不传参数时默认是根据字符串UniCode码来进行排序的,如果数组内不是字符串,会强制传化为字符串来进行排序。

②sort()方法也可以传入一个参数,该参数必须为一个函数(被称为比较函数),比较函数接收两个参数。
var arr = [5, 3, 10, 2, 4]; arr.sort(function (a, b) {//a 和 b 这两个参数表示任意两个数组项目两两对比 if (a > b) {//任意的两个项目的比较算法 return -1;//只要是返回-1,就是a在前b在后,相当于ab位置不变 } else if (a < b) {//任意的两个项目的比较算法 return 1;//只要是返回1,就是a在后b在前,相当于ab位置交换 } else { return 0;//返回0,则ab位置随意互换 } }) console.log(arr);// [10, 5, 4, 3, 2]
比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列。
若 a 等于 b,则返回 0。
若 a 大于 b, 即 a - b 大于零,则返回一个大于零的值,数组将按照降序排列。
③.按照数组对象中某个属性值进行排序
var goods = [ { value: 100, weight: 1 }, { value: 200, weight: 20 }, { value: 50, weight: 5 }, { value: 3, weight: 1 }, { value: 10000, weight: 300 }, { value: 3000, weight: 10 }, ] // 按照物品的价值进行降序排序 goods.sort((a, b) => b.value - a.value);
以上就是数组的高级排序。

浙公网安备 33010602011771号