diff --git a/src/books.js b/src/books.js index c8119bb..35d8e89 100644 --- a/src/books.js +++ b/src/books.js @@ -38,15 +38,51 @@ // 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,13 +90,20 @@ function getBookDetails() { // Iteration 3 | Delete Language // Your code here: +booksArray.forEach(function (element){ + delete element.details.language +}) +console.log(booksArray) // Iteration 4 | Estimated Reading Time // Your code here: - +booksArray.forEach(function(element){ + element.readingTime = Math.ceil((element.pages * 500) / 90) +}) +console.log(booksArray) // Bonus: Iteration 5 | Books Dictionary @@ -68,7 +111,7 @@ function getBookDetails() { /* The `dictionary` is an object containing books grouped by author. The book info is stored in arrays with structure: [title, pages]. */ -const dictionary = { +const dictionaryExample = { "J. K. Rowling": [ ["Harry Potter and the Philosopher's Stone", 223], ["Harry Potter and the Chamber of Secrets", 251], @@ -86,15 +129,27 @@ const dictionary = { ], }; -function booksByAuthor() { - // Your code here: - +function booksByAuthor(dictionary) { + const resultArr = [] + for (const author in dictionary){ + dictionary[author].forEach(function (book){ + resultArr.push({title: book[0], + pages: book[1], + author: author, + },) + }) + } + return resultArr } - +console.log(booksByAuthor(dictionaryExample)) // Bonus: Iteration 6 | Average Page Count -function averagePageCount() { - // Your code here: - +function averagePageCount(booksArr) { + let pageCount = 0 + booksArr.forEach(function(book){ + pageCount += book.pages + }) + return pageCount/booksArr.length } +console.log(averagePageCount(booksArray)) \ No newline at end of file