javascript 数组排序使用 sort() 方法,对数组元素进行原地排序。默认按字符串 unicode 代码点排序,但可使用 comparefunction 按数字或对象属性排序。
使用 JavaScript 数组排序
JavaScript 中的数组排序是使用 sort() 方法实现的。该方法对数组元素进行原地排序,并返回已排序的数组。
语法:
array.sort([compareFunction])
其中,compareFunction 是一个可选的比较函数,用于定义排序规则。
比较函数:
比较函数是一个接收两个数组元素作为参数的函数。它返回一个数字,表示这两个元素的相对次序:
- 如果 compareFunction(a, b)
- 如果 compareFunction(a, b) > 0,则 b 排在 a 之前。
- 如果 compareFunction(a, b) === 0,则两个元素的顺序不变。
默认排序:
如果没有提供比较函数,则数组按字符串的 Unicode 代码点进行排序。这意味着数字会按其字符串表示进行排序,而不是按其数值大小。
示例:
按字符串排序:
const fruits = ['Apple', 'Orange', 'Banana', 'Kiwi']; fruits.sort(); console.log(fruits); // ['Apple', 'Banana', 'Kiwi', 'Orange']
按数字排序:
可以使用比较函数按数字排序:
const numbers = [3, 1, 6, 2, 5]; numbers.sort((a, b) => a - b); console.log(numbers); // [1, 2, 3, 5, 6]
按对象属性排序:
还可以使用比较函数按对象属性排序:
const people = [ { name: 'John', age: 30 }, { name: 'Mary', age: 25 }, { name: 'Bob', age: 40 }, ]; people.sort((a, b) => a.age - b.age); console.log(people); // [{ name: 'Mary', age: 25 }, { name: 'John', age: 30 }, { name: 'Bob', age: 40 }]