/* Luyện tập thao tác với mảng đối tượng trong JavaScript, bao gồm: Thêm mới sách vào danh sách. Hiển thị danh sách sách. Tìm kiếm sách theo tên. Xóa sách theo ID. Thoát chương trình. book -> id, title, author, category, price */ const bookList = [ { id: -1, title: "Học cách yêu", author: "Nguyễn Phước", category: "tình cảm", price: 99999 }, { id: -2, title: "Học làm giàu", author: "Nguyễn Phước", category: "đời sống", price: 10000 } ] let genId = 0; let choice = null; do { console.log("1/ Thêm Sách") console.log("2/ Hiển thị Sách") console.log("3/ Tìm sách (by title)") console.log("0/ Thoát") choice = +prompt("Nhập lựa chọn của bạn") switch (choice) { case 1: let id = genId++; let newBook = { id, title: prompt("Nhập tên sách!", "Sách " + id), author: prompt("Nhập tên tác giả"), category: prompt("Nhập danh mục sách"), price: +prompt("Nhập giá sách", 0) } /* Check giá */ while (isNaN(newBook.price)) { newBook.price = +prompt("Nhập giá sách", 0); } bookList.push(newBook); alert("Thêm thành công!") break; case 2: if (bookList.length == 0) { console.log("Không có sách nào trong kho!") break; } console.log("bookList", bookList) break case 3: let inputSearch = prompt("Nhập từ khóa muốn tìm") console.log("Sách tìm thấy: ") for (book of bookList) { // "Học cách yêu".includes("yêu") => true // "Học cách yêu".includes("giàu") => false if (book.title.replaceAll(" ", "").toLowerCase().includes(inputSearch.replaceAll(" ", "").toLowerCase())) { console.log("book", book.title) } } break; case 4: let inputId = prompt("Nhập id muốn xóa!") for(let i = 0; i < bookList.length; i++) { if(bookList[i].id == inputId) { bookList.splice(i, 1) break; } } console.log("danh sách sau xóa là", bookList) break; case 0: break; default: alert("Lựa chọn không hợp lệ!") } } while (choice != 0)