From ece5acab05bdc98133daea15cb6a878dc3202b06 Mon Sep 17 00:00:00 2001 From: Luana Ruscitti Date: Fri, 20 Jun 2025 17:45:51 +0200 Subject: [PATCH] done --- src/books.js | 114 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 92 insertions(+), 22 deletions(-) diff --git a/src/books.js b/src/books.js index c8119bb..ec2aade 100644 --- a/src/books.js +++ b/src/books.js @@ -38,29 +38,82 @@ // Your code here: -const booksArray = []; +const booksArray = [ + { + title: "The Old Man and the SafeArray", + 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 Hemingway", + 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() { +let bookStr = ""; + +function getBookDetails(booksArray) { // Your code here: + booksArray.forEach(book => { + bookStr += `${book.title} - ${book.author} - ${book.pages} pages\n`; + }); } +//let bookStr = `"${booksArray[i][0]} - ${booksArray[i][2]} - ${booksArray[i][1]} pages"` +getBookDetails(booksArray) +console.log(bookStr) + // 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 @@ -69,32 +122,49 @@ function getBookDetails() { The book info is stored in arrays with structure: [title, pages]. */ const dictionary = { - "J. K. Rowling": [ - ["Harry Potter and the Philosopher's Stone", 223], - ["Harry Potter and the Chamber of Secrets", 251], - ["Harry Potter and the Prisoner of Azkaban", 317], - ["Harry Potter and the Goblet of Fire", 636], - ], - "Neal Stephenson": [ - ["Cryptonomicon", 928], - ["Anathem", 1008], - ["Fall; or, Dodge in Hell", 896], - ], - "Malcolm Gladwell": [ - ["Outliers", 320], - ["Blink", 287], - ], + "J. K. Rowling": [ + ["Harry Potter and the Philosopher's Stone", 223], + ["Harry Potter and the Chamber of Secrets", 251], + ["Harry Potter and the Prisoner of Azkaban", 317], + ["Harry Potter and the Goblet of Fire", 636], + ], + "Neal Stephenson": [ + ["Cryptonomicon", 928], + ["Anathem", 1008], + ["Fall; or, Dodge in Hell", 896], + ], + "Malcolm Gladwell": [ + ["Outliers", 320], + ["Blink", 287], + ], }; +let result = []; +function booksByAuthor(dictionary) { + let result = []; + for (let books in dictionary) { //loop into the objects + books = dictionary[author]; //vaiables become the element author (that is part of the dictionary array) + for (i=0; i < books.length; i++) { + let title = books[i][0]; + let pages = books[i][1]; //through the array length, I create variables in positions O and 1 of the array + } result.push({ + title: title, + pages: pages, + author: author + }) + } return result + -function booksByAuthor() { - // Your code here: - } +/*function booksByAuthor(dictionary) { + for (let author in dictionary) { + console.log(dictionary) + } +}*/ // Bonus: Iteration 6 | Average Page Count function averagePageCount() { // Your code here: - + }