From c53f6fc60732bb81874dd2494b8b6185c8994f3f Mon Sep 17 00:00:00 2001 From: Andres Gonzalez Perez Date: Fri, 21 Nov 2025 17:31:07 +0100 Subject: [PATCH] lab done --- .DS_Store | Bin 0 -> 6148 bytes src/books.js | 97 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9aae13da24324e45b6d806003523506069b86565 GIT binary patch literal 6148 zcmeHKO;6iE5S=BV*dWv#io^xU5?4e+ODmyXOd1XxxL^basM0vLz^d^^u|p0~B%j+K z(<{G(|H290>@HGb;Dl6F(M~k`_G8{g^AhiRh)A@C(GF3Ah#WX$eHqOQ#_R0QY{AU9 zK*4*+UYN=dBi_!MRlq9nzbnAcZjDk(C_GGOp5J|}Y(FSdNw{=O2eeOZIs$IfHANN1 z-wNYB1=OdQdSDJI!zZQzm{(MQozAkwMulCY9MQc>)Ss85!cpEgXU}cePm{c8Ht)nj zt-knf$yst%oFBoJ90f(U80M|+;G9P%Ql{ZkzZ;$=@u<`I@Lgs_H_76GA|z3akc+b< zi{z*!hgp;>ZlD(&*Ks?I_3?OTx4Gr*?tPhTdE>oL-2eP_GI5=?&5z%XJHOKFO#W6X zlE6u+Y}McsaAqdwn_!ToGP}eKM=wIJ7-|%hSJb%2>hy0k6*(u0Ol4G21*uzmlLF?S z=&ZbH7fZGZSOw-$0X`o*IHPZ{)ToXQG^zvu)-kONef9DW^mqd38!R%o7***LD$s3>U6b*wsk6|cjUVa?+X&^K6W#0<>7 O2q+nBV-@(P3OoWdV8h@5 literal 0 HcmV?d00001 diff --git a/src/books.js b/src/books.js index c8119bb..e421b30 100644 --- a/src/books.js +++ b/src/books.js @@ -38,28 +38,109 @@ // 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) { + // Loop through all indexes of booksArray + for (let index in booksArray) { + const currentBook = booksArray[index]; + + // Checks if all properties match + let isSame = true; + + // Loop through each property of the book object + for (let key in book) { + // If the property is an object (like details), we need to check its sub-properties + if (typeof book[key] === "object" && book[key] !== null) { + for (let subKey in book[key]) { + if (book[key][subKey] !== currentBook[key][subKey]) { + isSame = false; + break; + } + } + } else { + // Compare primitive properties (title, pages, author) + if (book[key] !== currentBook[key]) { + isSame = false; + break; + } + } + } + + // If all properties match, return the formatted string + if (isSame) { + return `${currentBook.title} - ${currentBook.author} - ${currentBook.pages} pages`; + } + } } +// Example: +const exampleBook = { + 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...", + }, +}; - -// Iteration 3 | Delete Language -// Your code here: +console.log(getBookDetails(exampleBook)); +// Iteration 3 | Delete Language +for (let index in booksArray) { + delete booksArray[index].details.language; + console.log(booksArray[index]); +} // Iteration 4 | Estimated Reading Time -// Your code here: +for (let index in booksArray) { + booksArray[index].readingTime = Math.ceil((booksArray[index].pages * 500) / 90); +}