diff --git a/src/books.js b/src/books.js index c8119bb..cd92d16 100644 --- a/src/books.js +++ b/src/books.js @@ -38,15 +38,53 @@ // 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: "Leigh 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`; } @@ -54,14 +92,20 @@ function getBookDetails() { // Iteration 3 | Delete Language // Your code here: +for(let i = 0; i < booksArray.length; i++){ + delete booksArray[i].details.language; +} +console.log(booksArray); // Iteration 4 | Estimated Reading Time // Your code here: - - +for(let i = 0; i < booksArray.length; i++){ + booksArray[i]["readingTime"] = Math.ceil((booksArray[i].pages * 500) / 90); +} +console.log(booksArray); // Bonus: Iteration 5 | Books Dictionary @@ -86,15 +130,37 @@ const dictionary = { ], }; -function booksByAuthor() { +function booksByAuthor(authorBooks) { + + let arrayOfBooks = []; + // Your code here: - + Object.entries(authorBooks).forEach(([authorKey, books]) => { + for(let book of books){ + let newBook = { + title: book[0], + pages: book[1], + author: authorKey, + } + + arrayOfBooks.push(newBook); + } + }); + + return arrayOfBooks; } - // Bonus: Iteration 6 | Average Page Count -function averagePageCount() { +function averagePageCount(arrayOfBooks) { // Your code here: + let averagePageCount = 0; + + for(let i = 0; i < arrayOfBooks.length; i++){ + averagePageCount += arrayOfBooks[i].pages; + } + + averagePageCount = Math.round(averagePageCount / arrayOfBooks.length); + return averagePageCount; }