Sắp xếp
Bài học 14 trên 18 trong khóa học Các phương thức mảng trong JavaScript của Coddy.
Phương thức sort() là một hàm dựng sẵn dùng cho mảng, giúp bạn sắp xếp các phần tử theo thứ tự cụ thể. Theo mặc định, phương thức này sắp xếp các phần tử theo thứ tự bảng chữ cái nếu đó là chuỗi, hoặc theo thứ tự số nếu đó là số. Tuy nhiên, bạn cũng có thể tùy chỉnh cách sắp xếp bằng hàm callback để xác định tiêu chí sắp xếp của riêng mình.
Sắp xếp mặc định: Hãy tưởng tượng bạn có một danh sách tên phim (chuỗi) và muốn sắp xếp chúng theo thứ tự bảng chữ cái, tức là cách sắp xếp mặc định:
const movieTitles = ["The Shawshank Redemption", "The Godfather", "The Dark Knight", "Pulp Fiction"];
movieTitles.sort(); // Sắp xếp trực tiếp trên mảng
console.log(movieTitles); // Đầu ra: ["The Dark Knight", "The Godfather", "Pulp Fiction", "The Shawshank Redemption"]- Trong ví dụ trên, chúng ta gọi
sort()trênmovieTitles. - Theo mặc định, phương thức này sắp xếp các phần tử theo thứ tự bảng chữ cái dựa trên mã ký tự Unicode của chúng.
console.log()hiển thị mảngmovieTitles, lúc này đã được sắp xếp theo thứ tự bảng chữ cái.
Sắp xếp số tùy chỉnh: Giả sử bạn có một mảng điểm đánh giá sản phẩm (các số) và muốn sắp xếp từ cao xuống thấp:
const ratings = [4.5, 3.8, 5.0, 4.2];
ratings.sort((a, b) => b - a); // Hàm (function) so sánh tùy chỉnh để sắp xếp theo thứ tự giảm dần
console.log(ratings); // Đầu ra: [5.0, 4.5, 4.2, 3.8]- Trong ví dụ trên, chúng ta gọi
sort()trênratings. - Chúng ta cung cấp một hàm so sánh tùy chỉnh (
(a, b) => b - a) để lấy phần tử thứ hai (b) trừ đi phần tử thứ nhất (a). - Nếu kết quả là số dương (b lớn hơn a), các phần tử sẽ đổi chỗ cho nhau để sắp xếp theo thứ tự giảm dần.
Thử thách
DễBạn đang ở chợ, có một danh sách giá (các số) của những món đồ muốn mua, và các mức giá này nằm trong mảng marketPrices.
Nhiệm vụ của bạn là viết code JavaScript để sắp xếp giá từ thấp nhất đến cao nhất và in ra mảng đã cập nhật.
Tự làm thử
const marketPrices = [10, 5, 20, 12, 8];
// Viết code ở đâyTất cả bài học trong Các phương thức mảng trong JavaScript
1Bạn sẽ học được gì?
Các phương thức của mảng trong JSTự luyện tập: Trình biên dịch JavaScript online