在JavaScript中,您可以使用數(shù)組的.sort()
方法對數(shù)組元素進(jìn)行排序。默認(rèn)情況下,.sort()
方法將數(shù)組元素轉(zhuǎn)換為字符串并按照字符Unicode編碼順序進(jìn)行排序。如果您需要按照其他規(guī)則對數(shù)組進(jìn)行排序,可以向.sort()
方法提供一個自定義的比較函數(shù)。
比較函數(shù)應(yīng)該接受兩個參數(shù)(通常稱為a
和b
),并返回一個負(fù)數(shù)、零或正數(shù),來表示a
應(yīng)該被放置在b
之前、兩者排序無關(guān)或放置在b
之后。
下面是一些示例:
const fruits = ['apple', 'banana', 'kiwi', 'mango'];
fruits.sort();
console.log(fruits); // 輸出: ["apple", "banana", "kiwi", "mango"]
const numbers = [40, 100, 2, 67];
numbers.sort((a, b) => a - b);
console.log(numbers); // 輸出: [2, 40, 67, 100]
const words = ['I', 'love', 'coding', 'JavaScript'];
words.sort((a, b) => a.length - b.length);
console.log(words); // 輸出: ["I", "love", "JavaScript", "coding"]
注意:.sort()
方法會直接修改原數(shù)組。如果您不想修改原數(shù)組,可以在排序之前創(chuàng)建一個數(shù)組的副本,例如使用slice()
方法或展開運(yùn)算符(...
):
const originalNumbers = [40, 100, 2, 67];
const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);
console.log(sortedNumbers); // 輸出: [2, 40, 67, 100]
console.log(originalNumbers); // 輸出: [40, 100, 2, 67],原數(shù)組未改變