Bài 16: Hàm sort() – sắp xếp mảng tăng giảm

yanyan

By yanyan

Cập nhật Tháng 7 19, 2025

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ệnhKế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 price hoặc name
  • localeCompare() dùng để so sánh chữ cái có dấu

Bài tập

  1. Sắp xếp mảng số [4, 2, 9, 1] tăng và giảm
  2. Sắp xếp mảng ["cam", "táo", "ổi"] theo thứ tự chữ cái
  3. Có mảng sản phẩm {name, price} → sắp theo giá giảm
  4. Có mảng học sinh {name, score} → sắp theo điểm từ cao đến thấp

📂 Chuyên mục:

🏷️ Thẻ liên quan:

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

[global_subscribe_form]

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.