📜  按值排序数组 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:08.500000             🧑  作者: Mango

按值排序数组 js - Javascript

在javascript中,我们可以使用sort()函数来对数组进行排序。它默认按照ASCII字符顺序进行排序。我们也可以自定义一个排序函数,以按照我们想要的方式排序数组。

使用默认的sort()函数进行排序

默认的sort()函数会将数组中的元素按照ASCII字符顺序进行排序,所以如果我们要按照数字或者其他类型排序,需要自定义排序函数。

const arr = [5, 2, 10, 1, 7];
arr.sort();
console.log(arr); // [1, 10, 2, 5, 7]
自定义排序函数

我们可以自定义一个排序函数,对于数字型数组,我们可以以升序或降序将它们排序。

const arr = [5, 2, 10, 1, 7];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 2, 5, 7, 10]

在上面的代码中,我们将a和b进行比较,如果a小于b,那么函数返回一个负数,sort()函数就会将a排在b的前面。如果a等于b,那么函数返回0,sort()函数就不改变a和b的位置。如果a大于b,那么函数返回一个正数,sort()函数就会将a排在b的后面。

我们还可以按照字符串型数组里的字母顺序排序,如下:

const arr = ['banana', 'apple', 'grape', 'orange'];
arr.sort();
console.log(arr); // ['apple', 'banana', 'grape', 'orange']
排序对象数组

当我们要对对象数组进行排序的时候,我们需要自定义一个排序函数,指明我们想要的排序方式。

const arr = [
  {name: 'Rob', age: 30},
  {name: 'Mary', age: 25},
  {name: 'John', age: 40},
  {name: 'Andy', age: 20},
];
arr.sort((a, b) => a.age - b.age);
console.log(arr);
/*
[
  {name: 'Andy', age: 20},
  {name: 'Mary', age: 25},
  {name: 'Rob', age: 30},
  {name: 'John', age: 40},
]
*/

在上面的代码中,我们按照年龄将人物对象进行排序,年龄小的排在前面。我们可以使用任何我们想要的属性对对象进行排序。

总之,javascript给我们提供了一系列排序函数,我们可以按照任何我们想要的方式排序数组。