From e9e68061e40b62eef06d42f9ecdc77dfbce8d651 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Fri, 15 Aug 2025 11:49:02 +0100 Subject: [PATCH 1/8] Fix function parameter to enable destructuring in introduceYourself --- Sprint-1/destructuring/exercise-1/exercise.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index 1ff2ac5c..90eb4795 100644 --- a/Sprint-1/destructuring/exercise-1/exercise.js +++ b/Sprint-1/destructuring/exercise-1/exercise.js @@ -6,7 +6,7 @@ const personOne = { // Update the parameter to this function to make it work. // Don't change anything else. -function introduceYourself(___________________________) { +function introduceYourself({name, age, favouriteFood}) { console.log( `Hello, my name is ${name}. I am ${age} years old and my favourite food is ${favouriteFood}.` ); From fa7aae4da881d10cd01368719ba9e3a8ac8d93d0 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Fri, 15 Aug 2025 11:52:52 +0100 Subject: [PATCH 2/8] Add comment to clarify destructuring syntax in exercise.js --- Sprint-1/destructuring/exercise-1/exercise.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprint-1/destructuring/exercise-1/exercise.js b/Sprint-1/destructuring/exercise-1/exercise.js index 90eb4795..e40220a5 100644 --- a/Sprint-1/destructuring/exercise-1/exercise.js +++ b/Sprint-1/destructuring/exercise-1/exercise.js @@ -13,3 +13,5 @@ function introduceYourself({name, age, favouriteFood}) { } introduceYourself(personOne); + +// the syntax to destructure is let {name,age, favouriteFood} = personOne From 43c04ebd78b996441bafaf5b2eda38ed80fb77c0 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Fri, 15 Aug 2025 12:28:59 +0100 Subject: [PATCH 3/8] Refactor exercise.js for outputting Gryffindor members and Teachers with pets --- Sprint-1/destructuring/exercise-2/exercise.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Sprint-1/destructuring/exercise-2/exercise.js b/Sprint-1/destructuring/exercise-2/exercise.js index e11b75eb..5dd33042 100644 --- a/Sprint-1/destructuring/exercise-2/exercise.js +++ b/Sprint-1/destructuring/exercise-2/exercise.js @@ -69,4 +69,19 @@ let hogwarts = [ pet: "Phoenix", occupation: "Teacher", }, + ]; + +hogwarts.forEach(({firstName,lastName,house,pet,occupation}) => { + if(house === "Gryffindor") { + console.log(`${firstName} ${lastName}`) + } + }) +console.log(""); + +hogwarts.forEach(({firstName,lastName,house,pet,occupation}) => { + if(occupation === "Teacher" && pet) { + console.log(`${firstName} ${lastName}`) + } + }) + From b0bd98ed2d16aeef06b4265b8461f61e140fe817 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Wed, 20 Aug 2025 18:19:19 +0100 Subject: [PATCH 4/8] Fix book submission logic and update Prettier to version 2.8.8 --- debugging/book-library/script.js | 6 +++--- package-lock.json | 15 ++++++++------- package.json | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 75ce6c1d..45277227 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -37,8 +37,8 @@ function submit() { alert("Please fill all fields!"); return false; } else { - let book = new Book(title.value, title.value, pages.value, check.checked); - library.push(book); + let book = new Book(title.value, author.value, pages.value, check.checked); + myLibrary.push(book); render(); } } @@ -54,7 +54,7 @@ function render() { let table = document.getElementById("display"); let rowsNumber = table.rows.length; //delete old table - for (let n = rowsNumber - 1; n > 0; n-- { + for (let n = rowsNumber - 1; n > 0; n--) { table.deleteRow(n); } //insert updated row and cells diff --git a/package-lock.json b/package-lock.json index 52884e65..fe490948 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "ISC", "devDependencies": { "jest": "^29.5.0", - "prettier": "^2.8.7" + "prettier": "^2.8.8" } }, "node_modules/@ampproject/remapping": { @@ -2921,10 +2921,11 @@ } }, "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -5673,9 +5674,9 @@ } }, "prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, "pretty-format": { diff --git a/package.json b/package.json index 159d018d..5e685675 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,6 @@ "homepage": "https://github.com/CodeYourFuture/Module-JS3#readme", "devDependencies": { "jest": "^29.5.0", - "prettier": "^2.8.7" + "prettier": "^2.8.8" } } From 988c38753ed2ba368c7828459370c1d4f03da9d9 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Wed, 20 Aug 2025 18:21:28 +0100 Subject: [PATCH 5/8] Fix read status display logic and correct delete button variable name in render function --- debugging/book-library/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 45277227..f0a50ce8 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -77,9 +77,9 @@ function render() { wasReadCell.appendChild(changeBut); let readStatus = ""; if (myLibrary[i].check == false) { - readStatus = "Yes"; - } else { readStatus = "No"; + } else { + readStatus = "Yes"; } changeBut.innerText = readStatus; @@ -90,7 +90,7 @@ function render() { //add delete button to every row and render again let delButton = document.createElement("button"); - delBut.id = i + 5; + delButton.id = i + 5; deleteCell.appendChild(delBut); delBut.className = "btn btn-warning"; delBut.innerHTML = "Delete"; From bad3e7fbe2c30b63223419ed568d397a4408d404 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Wed, 20 Aug 2025 18:31:47 +0100 Subject: [PATCH 6/8] Fix delete button functionality and event listener in render function --- debugging/book-library/script.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index f0a50ce8..7870f55a 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -91,10 +91,10 @@ function render() { //add delete button to every row and render again let delButton = document.createElement("button"); delButton.id = i + 5; - deleteCell.appendChild(delBut); - delBut.className = "btn btn-warning"; - delBut.innerHTML = "Delete"; - delBut.addEventListener("clicks", function () { + deleteCell.appendChild(delButton); + delButton.className = "btn btn-warning"; + delButton.innerHTML = "Delete"; + delButton.addEventListener("click", function () { alert(`You've deleted title: ${myLibrary[i].title}`); myLibrary.splice(i, 1); render(); From 408cf69457e6bd2bbe440681e744ebe762e13d3b Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Wed, 20 Aug 2025 18:55:53 +0100 Subject: [PATCH 7/8] Refactor submit function to stop books from getting added if any input field is empty --- debugging/book-library/script.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 7870f55a..a6401b91 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -28,12 +28,7 @@ const check = document.getElementById("check"); //check the right input from forms and if its ok -> add the new book (object in array) //via Book function and start render function function submit() { - if ( - title.value == null || - title.value == "" || - pages.value == null || - pages.value == "" - ) { + if (!title.value.trim() || !author.value.trim() || !pages.value.trim()) { alert("Please fill all fields!"); return false; } else { From 4d58714827408acbe97464b147062c0b261ed6ec Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Wed, 20 Aug 2025 19:04:09 +0100 Subject: [PATCH 8/8] Clear user input fields after adding a new book --- debugging/book-library/script.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index a6401b91..95f878fe 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -35,6 +35,11 @@ function submit() { let book = new Book(title.value, author.value, pages.value, check.checked); myLibrary.push(book); render(); + //clear user input data after storing the information + title.value = ""; + author.value = ""; + pages.value = ""; + check.checked = false; } }