JavaScript có hàm sắp xếp mạnh mẽbuilt-in. Mặc định sort sắp xếp theo bảng chữ cái. Ví dụ:
Ví dụ
let arr1 = ["Zebra", "Bear", "Tiger"]; arr1.sort(); console.log(arr1);
Kết quả
[ 'Bear', 'Tiger', 'Zebra' ]
Ví dụ số:
Ví dụ
let arr1 = [1, 8, 31, 21]; arr1.sort(); console.log(arr1);
Kết quả
[ 1, 21, 31, 8 ]
Kết quả không như mong đợi vì sort mặc định theo chuỗi. Để sắp xếp số, cung cấp hàm so sánh:
Ví dụ
let arr1 = [1, 8, 31, 21]; arr1.sort((a, b) => a - b); console.log(arr1);
Kết quả
[ 1, 8, 21, 31 ]
Cũng dùng cho sắp xếp mảng đối tượng theo key:
Ví dụ
let people = [{ name: "Zoe", age: 35 }, { name: "Richard", age: 21 }, { name: "Agnes", age: 25 }]; people.sort((a, b) => { let nameA = a.name.toUpperCase(); let nameB = b.name.toUpperCase(); if (nameA < nameB) return -1; if (nameA > nameB) return 1; return 0; }) console.log(people)
Kết quả
[ { name: 'Agnes', age: 25 }, { name: 'Richard', age: 21 }, { name: 'Zoe', age: 35 } ]
sort sắp xếp tại chỗ (in-place). Để giữ nguyên mảng gốc, dùng arr.slice(0).sort().