From d07a62b7569385d816ecb916b5fd3bf2032f0813 Mon Sep 17 00:00:00 2001
From: Mykhailo Chubko <107486903+reasonkxx@users.noreply.github.com>
Date: Sun, 3 Dec 2023 21:29:42 +0200
Subject: [PATCH] Ik-12 Chubko All labwork from 1 to 7

---
 Exercises/1-for.js      |  5 +++++
 Exercises/2-for-of.js   |  8 +++++---
 Exercises/3-while.js    | 12 +++++++++---
 Exercises/4-do-while.js | 12 +++++++++---
 Exercises/5-reduce.js   |  7 +++----
 Exercises/6-matrix.js   | 14 +++++++++++---
 Exercises/7-ages.js     | 21 ++++++++-------------
 7 files changed, 50 insertions(+), 29 deletions(-)

diff --git a/Exercises/1-for.js b/Exercises/1-for.js
index 62e6ab8..876b2f0 100644
--- a/Exercises/1-for.js
+++ b/Exercises/1-for.js
@@ -4,6 +4,11 @@ const sum = (...args) => {
   // Use for loop and accumulator variable
   // to calculate sum of all given arguments
   // For example sum(1, 2, 3) should return 6
+  let total = 0; 
+  for (let i = 0; i < args.length; i++) {
+    total += args[i]; // Додаємо кожен аргумент до суми
+  }
+  return total; 
 };
 
 module.exports = { sum };
diff --git a/Exercises/2-for-of.js b/Exercises/2-for-of.js
index 9965f25..18a02df 100644
--- a/Exercises/2-for-of.js
+++ b/Exercises/2-for-of.js
@@ -1,9 +1,11 @@
 'use strict';
 
 const sum = (...args) => {
-  // Use for..of loop and accumulator variable
-  // to calculate sum of all given arguments
-  // For example sum(1, 2, 3) should return 6
+  let total = 0; 
+  for (const arg of args) { 
+    total += arg; 
+  }
+  return total;
 };
 
 module.exports = { sum };
diff --git a/Exercises/3-while.js b/Exercises/3-while.js
index 6110b9f..87966f6 100644
--- a/Exercises/3-while.js
+++ b/Exercises/3-while.js
@@ -1,9 +1,15 @@
 'use strict';
 
 const sum = (...args) => {
-  // Use while loop and accumulator variable
-  // to calculate sum of all given arguments
-  // For example sum(1, 2, 3) should return 6
+  let total = 0; 
+  let i = 0;
+
+  while (i < args.length) { 
+    total += args[i]; 
+    i++; 
+  }
+
+  return total; 
 };
 
 module.exports = { sum };
diff --git a/Exercises/4-do-while.js b/Exercises/4-do-while.js
index 22d4464..04c9fc2 100644
--- a/Exercises/4-do-while.js
+++ b/Exercises/4-do-while.js
@@ -1,9 +1,15 @@
 'use strict';
 
 const sum = (...args) => {
-  // Use do..while loop and accumulator variable
-  // to calculate sum of all given arguments
-  // For example sum(1, 2, 3) should return 6
+  let total = 0; 
+  let i = 0; 
+
+  do {
+    total += args[i]; 
+    i++; 
+  } while (i < args.length); 
+
+  return total; 
 };
 
 module.exports = { sum };
diff --git a/Exercises/5-reduce.js b/Exercises/5-reduce.js
index a9cb44c..adec1dd 100644
--- a/Exercises/5-reduce.js
+++ b/Exercises/5-reduce.js
@@ -1,8 +1,7 @@
 'use strict';
 
-const sum = (...args) => 0;
-// Use Array.prototype.reduce method
-// to calculate sum of all given arguments
-// For example sum(1, 2, 3) should return 6
+const sum = (...args) => {
+    return args.reduce((total, current) => total + current, 0);
+  };
 
 module.exports = { sum };
diff --git a/Exercises/6-matrix.js b/Exercises/6-matrix.js
index 0bc42c8..e658942 100644
--- a/Exercises/6-matrix.js
+++ b/Exercises/6-matrix.js
@@ -1,9 +1,17 @@
 'use strict';
 
 const max = (matrix) => {
-  // Use nested for loop to find max value in 2d matrix
-  // For example max([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
-  // should return 9
+  let maxValue = -Infinity; 
+
+  for (const row of matrix) { 
+    for (const value of row) {
+      if (value > maxValue) {
+        maxValue = value; 
+      }
+    }
+  }
+
+  return maxValue; 
 };
 
 module.exports = { max };
diff --git a/Exercises/7-ages.js b/Exercises/7-ages.js
index e90caa2..e957d92 100644
--- a/Exercises/7-ages.js
+++ b/Exercises/7-ages.js
@@ -1,19 +1,14 @@
 'use strict';
 
 const ages = (persons) => {
-  // Use for..in to calculate age for each person
-  // For example ages({
-  //   lenin: { born: 1870, died: 1924 },
-  //   mao: { born: 1893, died: 1976 },
-  //   gandhi: { born: 1869, died: 1948 },
-  //   hirohito: { born: 1901, died: 1989 },
-  // })
-  // should return {
-  //   lenin: 54,
-  //   mao: 83,
-  //   gandhi: 79,
-  //   hirohito: 88,
-  // }
+  const ages = {}; 
+
+  for (const person in persons) { 
+    const personData = persons[person]; 
+    ages[person] = personData.died - personData.born; 
+  }
+
+  return ages; 
 };
 
 module.exports = { ages };