javascript 數(shù)組排序使用 sort() 方法,對數(shù)組元素進行原地排序。默認(rèn)按字符串 unicode 代碼點排序,但可使用 comparefunction 按數(shù)字或?qū)ο髮傩耘判颉?/p>
使用 JavaScript 數(shù)組排序
JavaScript 中的數(shù)組排序是使用 sort() 方法實現(xiàn)的。該方法對數(shù)組元素進行原地排序,并返回已排序的數(shù)組。
語法:
array.sort([compareFunction])
登錄后復(fù)制
其中,compareFunction 是一個可選的比較函數(shù),用于定義排序規(guī)則。
比較函數(shù):
比較函數(shù)是一個接收兩個數(shù)組元素作為參數(shù)的函數(shù)。它返回一個數(shù)字,表示這兩個元素的相對次序:
如果 compareFunction(a, b)
如果 compareFunction(a, b) > 0,則 b 排在 a 之前。
如果 compareFunction(a, b) === 0,則兩個元素的順序不變。
默認(rèn)排序:
如果沒有提供比較函數(shù),則數(shù)組按字符串的 Unicode 代碼點進行排序。這意味著數(shù)字會按其字符串表示進行排序,而不是按其數(shù)值大小。
示例:
按字符串排序:
const fruits = ['Apple', 'Orange', 'Banana', 'Kiwi']; fruits.sort(); console.log(fruits); // ['Apple', 'Banana', 'Kiwi', 'Orange']
登錄后復(fù)制
按數(shù)字排序:
可以使用比較函數(shù)按數(shù)字排序:
const numbers = [3, 1, 6, 2, 5]; numbers.sort((a, b) => a - b); console.log(numbers); // [1, 2, 3, 5, 6]
登錄后復(fù)制
按對象屬性排序:
還可以使用比較函數(shù)按對象屬性排序:
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 }]
登錄后復(fù)制