diff --git a/src/books.js b/src/books.js index c8119bb..bac885d 100644 --- a/src/books.js +++ b/src/books.js @@ -1,65 +1,108 @@ // Iteration 1 | Books Array -// Book 1 -// 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... -// } - -// Book 2 -// 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... -// } - -// Book 3 -// title: Educated - A Memoir -// pages: 352 -// author: Tara Westover -// details: { -// language: English -// description: Educated is an account of the struggle for self-invention... -// } - -// Book 4 -// 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. -// } + // 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"; } +const book = { + 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." + } +}; + +console.log(getBookDetails(book)) + + // Iteration 3 | Delete Language // Your code here: +for (let i =0; i { + book.readingTime = Math.ceil((book.pages * 500)/90); + +}); + +console.log(booksArray) @@ -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,48 @@ const dictionary = { ], }; -function booksByAuthor() { - // Your code here: - + +function booksByAuthor(dictionary ) { + const booksArray = []; +// console.log(dictionary) + for (let author in dictionary) { + dictionary [author].forEach(book => { + const [title, pages] = book; + + booksArray.push({ + title: title, + pages: pages, + author: author + }); + }); + } +// console.log(booksArray) + return booksArray; } +console.log(booksByAuthor(dictionaryExample )); + + + // Bonus: Iteration 6 | Average Page Count -function averagePageCount() { - // Your code here: - +function averagePageCount(books) { + if (!Array.isArray(books) || books.length === 0) { + return 0; + } + + let totalPages = 0; + + books.forEach(book => { + totalPages += book.pages; + }); + + return totalPages / books.length; } + + + + +console.log(averagePageCount(booksArray)); +