Tiếp tục với Bài 23 – Sắp xếp mảng với sort() trong JavaScript, một kỹ năng quan trọng để bạn có thể sắp xếp dữ liệu theo thứ tự tăng/giảm, đặc biệt khi làm việc với số, chữ, và danh sách đối tượng.
1. sort() với chuỗi
let names = ["Chi", "An", "Bình"]
names.sort()
console.log(names) // ["An", "Bình", "Chi"]
Mặc định sẽ sắp xếp theo bảng chữ cái Unicode (a–z)
2. sort() với số – cần truyền hàm so sánh
Mặc định sort() sẽ so sánh như chuỗi, nên sắp xếp sai:
let numbers = [10, 2, 5]
numbers.sort()
console.log(numbers) // [10, 2, 5] (sai)
Cách đúng:
numbers.sort((a, b) => a - b) // tăng dần
numbers.sort((a, b) => b - a) // giảm dần
3. sort() với object theo số
let products = [
{ name: "Bánh", price: 5000 },
{ name: "Sữa", price: 10000 },
{ name: "Cơm", price: 15000 }
]
products.sort((a, b) => a.price - b.price) // theo giá tăng
4. sort() với object theo chữ
products.sort((a, b) => a.name.localeCompare(b.name))
// ["Bánh", "Cơm", "Sữa"]
5. Giao diện học (code + output)
| Lệnh | Kết quả sắp xếp |
|---|---|
names.sort() | A → Z |
numbers.sort((a,b)=>a-b) | Số tăng dần |
products.sort(...) | Sắp xếp theo price hoặc name |
Tóm tắt bài 23
Bạn đã học:
- Dùng
sort()để sắp xếp mảng - Đối với số, cần truyền hàm so sánh
(a, b) => a - b - Với object, có thể sắp theo
pricehoặcname localeCompare()dùng để so sánh chữ cái có dấu
Bài tập
- Sắp xếp mảng số
[4, 2, 9, 1]tăng và giảm - Sắp xếp mảng
["cam", "táo", "ổi"]theo thứ tự chữ cái - Có mảng sản phẩm
{name, price}→ sắp theo giá giảm - Có mảng học sinh
{name, score}→ sắp theo điểm từ cao đến thấp

Thảo luận