From 965a34a307688ab70f4f825cc3c053f5766c5948 Mon Sep 17 00:00:00 2001 From: Pablo Cabrera Date: Mon, 23 Jun 2025 13:35:01 +0200 Subject: [PATCH] solved lab --- src/books.js | 84 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/src/books.js b/src/books.js index c8119bb..14516ef 100644 --- a/src/books.js +++ b/src/books.js @@ -38,15 +38,55 @@ // 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() { - // Your code here: - +function getBookDetails(book) { + return `${book.title} - ${book.author} - ${book.pages} pages` } @@ -54,14 +94,22 @@ function getBookDetails() { // Iteration 3 | Delete Language // Your code here: +for (let book of booksArray){ + +delete book.details[0].language; +} + // Iteration 4 | Estimated Reading Time // Your code here: +for (let book of booksArray){ + book.readingTime = Math.ceil(book.pages*500/90); +} - +console.log(booksArray) // Bonus: Iteration 5 | Books Dictionary @@ -86,15 +134,29 @@ const dictionary = { ], }; -function booksByAuthor() { - // Your code here: - +function booksByAuthor(dictionary) { + let result = []; + for (let author in dictionary) { + let books = dictionary[author]; + for (let [title, pages] of books){ + result.push({ + title, + pages, + author + }); + } + } + return result; } + // Bonus: Iteration 6 | Average Page Count -function averagePageCount() { - // Your code here: - +function averagePageCount(booksArray) { + let totalPages = 0; + for (let book of booksArray) { + totalPages += book.pages + } + return totalPages / booksArray.length; }