From a2697b310a45d2724b28c2c0c9f3946b0347ee82 Mon Sep 17 00:00:00 2001 From: Zefi Kavvadia Date: Fri, 20 Jun 2025 20:56:05 +0200 Subject: [PATCH] Solved lab --- src/books.js | 85 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 12 deletions(-) diff --git a/src/books.js b/src/books.js index c8119bb..ab59667 100644 --- a/src/books.js +++ b/src/books.js @@ -38,35 +38,80 @@ // 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: - -} + let bookDetails = book.title + " - " + book.author + " - " + book.pages + " pages"; + return bookDetails; +}; // Iteration 3 | Delete Language // Your code here: - +booksArray.forEach(function (book) { + delete book.details.language; +}); +console.log(booksArray); // Iteration 4 | Estimated Reading Time // Your code here: - - +booksArray.forEach(function (book) { + book.readingTime = Math.ceil(book.pages * 500 / 90); +}); +console.log(booksArray); // 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]. +The book info is stored in arrays with structure: [title, pages]. */ const dictionary = { "J. K. Rowling": [ @@ -86,15 +131,31 @@ const dictionary = { ], }; -function booksByAuthor() { +function booksByAuthor(dictionary) { // Your code here: - + let booksArray = []; + + Object.keys(dictionary).forEach( function(author) { + dictionary[author].forEach( function(book) { + let bookObject = { + title: book[0], + pages: book[1], + author: author + }; + booksArray.push(bookObject); + }); + }); + return booksArray; } +console.log(booksByAuthor(dictionary)); + // Bonus: Iteration 6 | Average Page Count -function averagePageCount() { +function averagePageCount(books) { // Your code here: + let averagePageCount; + return averagePageCount; }