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);

以上就是数组的高级排序。

posted @ 2022-05-13 10:02  &三分野  阅读(164)  评论(0)    收藏  举报