Đánh dấu đã đọc
Thuộc phần Logic và luồng chương trình trong hành trình JavaScript của Coddy. Bài học 46 trên 65.
Thử thách
DễThêm một case mới markAsRead vào câu lệnh switch. Hành động này cần đánh dấu sách là đã đọc và thêm điểm đánh giá.
Với case markAsRead:
- Tham số
currentDatalà một đối tượng chứa:- bookId (số)
- rating (số từ 1 đến 5)
- Tìm sách có id trùng khớp trong thư viện
- Kiểm tra để đảm bảo rating là một số từ 1 đến 5
- Nếu tìm thấy sách và rating hợp lệ:
- Đặt isRead thành true
- Đặt rating thành giá trị được cung cấp
- Thêm thông báo phù hợp vào mảng
results:Book marked as read!khi cập nhật thành côngInvalid rating! Please rate between 1 and 5khi rating không hợp lệBook not found!nếu không tồn tại sách có id đó
Tự làm thử
// Initialize library data
const libraryData = {
books: [
{
id: 1,
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
year: 1925,
genre: "Fiction",
isRead: false,
rating: 0,
borrowed: false,
borrowedBy: "",
borrowDate: ""
}
],
readers: [
{
name: "John Smith",
favoriteGenre: "Fiction",
}
]
};
function manageLibrary(actions, data) {
let results = [];
for (let i = 0; i < actions.length; i++) {
const currentAction = actions[i];
const currentData = data[i];
switch (currentAction) {
case 'printBooks':
results.push(libraryData.books);
break;
case 'printReaders':
results.push(libraryData.readers);
break;
case "addBook":
// Add a new book to the library
let newBook = {
id: libraryData.books.length + 1,
title: currentData.title,
author: currentData.author,
year: currentData.year,
genre: currentData.genre,
isRead: false,
rating: 0,
borrowed: false,
borrowedBy: "",
borrowDate: ""
};
libraryData.books.push(newBook);
results.push("Book added successfully!");
break;
case "searchByTitle":
// Search for books by title
let searchResults = [];
for(let i = 0; i < libraryData.books.length; i++) {
if(libraryData.books[i].title.toLowerCase().includes(currentData.toLowerCase())) {
searchResults.push(libraryData.books[i]);
}
}
results.push(searchResults);
break;
case "filterByGenre":
// Filter books by genre
let genreResults = [];
for(let i = 0; i < libraryData.books.length; i++) {
if(libraryData.books[i].genre === currentData) {
genreResults.push(libraryData.books[i]);
}
}
results.push(genreResults);
break;
default:
results.push("Invalid action!");
}
}
return results;
}Tất cả bài học trong Logic và luồng chương trình
4JSON phần 2
Duyệt qua JSONJSON lồng nhauOptional chaining trong JSONSao chép nông và sâuÔn tập: Cửa hàng xe đạpÔn tập: Hệ Mặt Trời7Hệ thống quản lý thư viện
Tổng quan dự ánThêm sách10Quản lý hệ thống lễ hội
Tổng quan dự ánThêm phim và địa điểm2Mảng nhiều chiều
Kiến thức cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuÔn tập về mảng 2 chiềuPhép cộng và phép trừ ma trậnMảng không đềuMảng 3 chiều và hơn nữaCác mẫu thường gặp với mảng 2 chiềuÔn tập về mảng3JSON phần 1
JSON là gì?Kiểm tra khóa có tồn tạiPhương thức của đối tượngToán tử spread phần 1Toán tử spread phần 2Xóa khóaÔn tập: thao tác với khóa trong JSONTự luyện tập: Trình biên dịch JavaScript online