From e7337c4f7dfa2c6a8a2af102dbc19603eb84f5ee Mon Sep 17 00:00:00 2001 From: amirsadeghi Date: Fri, 9 May 2025 17:32:56 +0200 Subject: [PATCH] Solved Lab --- src/books.js | 84 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 13 deletions(-) diff --git a/src/books.js b/src/books.js index c8119bb..6dbceac 100644 --- a/src/books.js +++ b/src/books.js @@ -38,32 +38,78 @@ // Your code here: -const booksArray = []; +const booksArray = [ + { + title: "The Old Man and the Sea", + pages: 128, + author: "Ernest Hemingway", + details: {language: "English", + description: "One of Hemingway's most famous works, it tells the story of Santiago...",} +}, +{ + title: "The Airbnb Story", + pages: 256, + author: "Leight Gallagher", + details: {language: "English", + description: "This is the remarkable behind-the-scenes story of the creation and growth of Airbnb...",} +}, + +{ + title: "Educated - A Memoir", + pages: 352, + author: "Tara Westover", + details: {language: "English", + description: "Educated is an account of the struggle for self-invention...",} +}, + +{ + title: "The Art of Learning", + pages: 288, + author: "Josh Waitzkin", + details: {language: "English", + description: "The Art of Learning takes readers through Waitzkin's unique journey to excellence. He explains in clear detail how a well-thought-out, principled approach to learning is what separates success from failure.",} +}, +]; // Iteration 2 | Book Details -function getBookDetails() { +function getBookDetails(book) { // Your code here: - -} +return `${book.title} - ${book.author} - ${book.pages} pages`; +}; // Iteration 3 | Delete Language // Your code here: - - +function languageDeleted(arrayOfBooks) { + // Your code here: +arrayOfBooks.forEach((bookItem) => { + delete bookItem.details.language; +}); +return arrayOfBooks; +}; +console.log(languageDeleted(booksArray)); // Iteration 4 | Estimated Reading Time // Your code here: +function readingTimeAdded(arrayOfBooks) { + +arrayOfBooks.forEach((bookItem) => { + const readingTimeInMinutes = (bookItem.pages * 500) / 90; + bookItem.readingTime = Math.ceil(readingTimeInMinutes); + }); +return arrayOfBooks; +}; +console.log(readingTimeAdded(booksArray)); -// Bonus: Iteration 5 | Books Dictionary + // Bonus: Iteration 5 | Books Dictionary /* The `dictionary` is an object containing books grouped by author. The book info is stored in arrays with structure: [title, pages]. @@ -86,15 +132,27 @@ const dictionary = { ], }; -function booksByAuthor() { +function booksByAuthor(arrayOfDictionary) { // Your code here: - -} + let sorted = []; + let author = arrayOfDictionary[i]; + let title = arrayOfDictionary[i][1]; + let pages = arrayOfDictionary[i][2] + return sorted; +}; + // Bonus: Iteration 6 | Average Page Count -function averagePageCount() { +function averagePageCount(arrayOfBooks) { // Your code here: - -} + let totalPages = 0; + +arrayOfBooks.forEach((book)=>{ +totalPages += book.pages; +}); +const totalAverage = totalPages / arrayOfBooks.length + +return totalAverage; +};