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 }]
登錄后復制