From d2945bec0f65057df7466439177cba50ac11e74d Mon Sep 17 00:00:00 2001 From: hani Date: Sun, 24 Aug 2025 14:47:22 +0300 Subject: [PATCH] newupdate_week_5 --- arrays.js | 103 ++++++++++++++++++++++++++++++++++++++++++++++++--- callbacks.js | 44 ++++++++++++++++++++-- index.html | 4 ++ objects.js | 51 +++++++++++++++++++++++++ 4 files changed, 193 insertions(+), 9 deletions(-) diff --git a/arrays.js b/arrays.js index 37faed2..6e5ce4b 100644 --- a/arrays.js +++ b/arrays.js @@ -17,9 +17,10 @@ Expected Output: // ✍️ Solve it here ✍️ - - - +const inventory =["Apples","Bread","Milk","Eggs"]; +inventory.push("Orange","Banana") +inventory.shift() +console.log(inventory) /* Task 2: Student Attendance Checker 📚✅ @@ -41,10 +42,23 @@ Output: "Ali is present." // ✍️ Write your function here ✍️ +const student= {ali: true, + fatima: false, + hassan: true, + layla: false +} + Object.entries(student).forEach(([name, isPresent]) => { + if (isPresent) { + console.log( name,"is present"); + } else + { + console.log(name ," is Absent"); + } - + }); + /* Task 3: Top Scorers Leaderboard 🏆⚽ @@ -68,8 +82,32 @@ Output: Sorted leaderboard with updated scores // ✍️ Write your functions here ✍️ +const topScorers = [ + { name: "Messi", score: 5 }, + { name: "Ronaldo", score: 3 }, + { name: "Neymar", score: 4 }, +]; + +function updateScore(playerName, additionalScore) { + const foundPlayer = topScorers.find(scorer => scorer.name === playerName); + if (foundPlayer) { + foundPlayer.score += additionalScore; + } else { + topScorers.push({ name: playerName, score: additionalScore }); + } +} +function printLeaderboard() { + const sortedScorers = [...topScorers].sort((a, b) => b.score - a.score); + sortedScorers.forEach(scorer => { + console.log(`${scorer.name}: ${scorer.score}`); + }); +} +// Example usage: +updateScore("Ronaldo", 2); // Adds 2 to Ronaldo's score +updateScore("Mbappe", 6); // Adds Mbappe to the leaderboard with a score of 6 +printLeaderboard(); // Prints the sorted leaderboard @@ -138,4 +176,59 @@ Final Output: - "The treasure remains hidden. Try again!" (if danger is encountered) - "Congratulations! You found the ultimate treasure!" (if all conditions are met) -*/ +// */ +const clues = ["Map", "Compass", "Key", "Shovel"]; +const clueMessages = ["ppaM", "ssapmoC", "yeK", "levohS"]; +const treasureMapSteps = ["Start at the beach", "Cross the forest", "Climb the mountain", "Danger", "Treasure"]; + +function findClue(clues, clueName) { + return clues.includes(clueName); +} + +function decipherMessage(clueMessages) { + return clueMessages.map(message => message.split('').reverse().join('')); +} + +function followSteps(treasureMapSteps) { + for (let i = 0; i < treasureMapSteps.length; i++) { + console.log(`Step ${i + 1}: ${treasureMapSteps[i]}`); + if (treasureMapSteps[i] === "Danger") { + console.log("Stopped at danger. Cannot continue."); + break; + } + } +} + +function finalTreasureHunt() { + let allCluesFound = true; + for (const clue of clues) { + if (!findClue(clues, clue)) { + allCluesFound = false; + break; + } + } + + const decipheredMessages = decipherMessage(clueMessages); + let messagesMatch = true; + for (let i = 0; i < clues.length; i++) { + if (clues[i] !== decipheredMessages[i]) { + messagesMatch = false; + break; + } + } + + followSteps(treasureMapSteps); + let reachedTreasure = treasureMapSteps[treasureMapSteps.length - 1] === "Treasure"; + + if (allCluesFound && messagesMatch && reachedTreasure) { + console.log("Congratulations! You found the ultimate treasure!"); + } else { + console.log("The treasure remains hidden. Try again!"); + } +} + +// Test the functions +console.log(findClue(clues, "Map")); // "Clue Map found!" +console.log(decipherMessage(clueMessages)); // ["Map", "Compass", "Key", "Shovel"] +followSteps(treasureMapSteps); +finalTreasureHunt(); \ No newline at end of file diff --git a/callbacks.js b/callbacks.js index d48e0fd..656ac5e 100644 --- a/callbacks.js +++ b/callbacks.js @@ -18,6 +18,16 @@ Expected Output: // ✍️ Solve it here ✍️ +function sendMessage(name, callback) { + callback(name); +} + +function welcomeMessage(name) { + console.log(`Welcome, ${name}!`); +} + +sendMessage("Amina", welcomeMessage); + @@ -48,11 +58,25 @@ Expected Output: // ✍️ Solve it here ✍️ - - - + function checkTemperature(temp, callback){ + callback(temp) + } + function evaluateTemperature(temp){ + if (temp > 30) { + console.log(`${temp}°C is Hot.`); + } else if (temp >= 15 && temp <= 30) { + console.log(`${temp}°C is Warm.`); + } else { + console.log(`${temp}°C is Cold.`); + } +} + +checkTemperature(35, evaluateTemperature); +checkTemperature(22, evaluateTemperature); +checkTemperature(10, evaluateTemperature); + /* -Task 3: Quiz Evaluator 📚📚📚📚 +STRETCH: Task 3: Quiz Evaluator 📚📚📚📚 You are building a quiz system. Write a function called `evaluateAnswer` that: 1. Takes a question, a correct answer, and a callback function as arguments. @@ -73,3 +97,15 @@ Expected Output: */ // ✍️ Solve it here ✍️ +function evaluateAnswer(question, correctAnswer, callback) { + const userAnswer = prompt(question); // or you can manually set a value for testing + callback(userAnswer, correctAnswer); +} + +function checkAnswer(userAnswer, correctAnswer) { + if (userAnswer === correctAnswer) { + console.log("Correct!"); + } else { + console.log(`Incorrect. The correct answer is ${correctAnswer}.`); + } +} \ No newline at end of file diff --git a/index.html b/index.html index 1104b64..ce9f547 100644 --- a/index.html +++ b/index.html @@ -5,5 +5,9 @@

Look at the console to see the results

+ + + + \ No newline at end of file diff --git a/objects.js b/objects.js index e2426e9..8049ad8 100644 --- a/objects.js +++ b/objects.js @@ -29,6 +29,22 @@ Expected Output: */ // ✍️ Solve it here ✍️ +const gamerProfile = { + username: "ShadowSlayer", + level: 5, + isOnline: false +}; + +function updateOnlineStatus(profile, status) { + profile.isOnline = status; + if (status) { + console.log(`${profile.username} is now online.`); + } else { + console.log(`${profile.username} is now offline.`); + } +} + +updateOnlineStatus(gamerProfile, true); @@ -64,6 +80,21 @@ Expected Output: // ✍️ Solve it here ✍️ +const dress = { + name: "Evening Gown", + size: "M", + inStock: true +}; + +function checkAvailability(dressItem) { + if (dressItem.inStock) { + console.log(`${dressItem.name} is available in size ${dressItem.size}.`); + } else { + console.log(`${dressItem.name} is out of stock.`); + } +} + +checkAvailability(dress); /* @@ -104,3 +135,23 @@ Features: */ // ✍️ Solve it here ✍️ +const supercar = { + model: "Ferrari SF90", + price: 500000, + features: { + color: "Red" + } +}; + +function addFeature(car, featureName) { + car.features[featureName] = true; + console.log(`${featureName} has been added to ${car.model}.`); +} + +addFeature(supercar, "turbo"); + +// Log all features using for...in loop +console.log("Features:"); +for (let feature in supercar.features) { + console.log(`- ${feature}: ${supercar.features[feature]}`); +}