Browse Source

HW<8> done

Illia Kozyr 1 year ago
parent
commit
a14d7ed13c
1 changed files with 115 additions and 0 deletions
  1. 115 0
      HW 8/index.html

+ 115 - 0
HW 8/index.html

@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <title>Document</title>
+    </head>
+    <body>
+        <script>
+            // -----------------------sort
+
+            var persons = [
+                { name: "Иван", age: 17 },
+                { name: "Мария", age: 35 },
+                { name: "Алексей", age: 73 },
+                { name: "Яков", age: 12 },
+            ];
+
+            function sort(array, objectKey, boolean) {
+                if (boolean) {
+                    array.sort((a, b) =>
+                        a[objectKey] < b[objectKey] ? 1 : -1
+                    );
+                } else {
+                    array.sort((a, b) =>
+                        a[objectKey] > b[objectKey] ? 1 : -1
+                    );
+                }
+            }
+
+            // sort(persons, "age")
+            sort(persons, "name", false);
+
+            // ------------------------array map
+
+            var array = ["1", {}, null, undefined, "500", 700];
+
+            // array.map( a => (a === Number ? +a : a))
+
+            let b = array.map((a) => {
+                let number = Number(a);
+                return isNaN(a) ? a : number;
+            });
+            console.log(b);
+
+            // ------------------------array reduce
+
+            var array2 = ["0", 5, 3, "string", null];
+            let productNumber = array2.reduce(function (a, b) {
+                if (typeof b === "number") {
+                    a *= b;
+                }
+                return a;
+            }, 1);
+            console.log(productNumber);
+
+            // ------------------------object filter
+
+            var phone = {
+                brand: "meizu",
+                model: "m2",
+                ram: 2,
+                color: "black",
+            };
+
+            function filter(obj, callBack) {
+                let newObj = {};
+
+                for (let key in obj) {
+                    if (callBack(key, obj[key])) {
+                        newObj = obj[key];
+                    }
+                }
+                return newObj;
+            }
+
+            filter(phone, (key, value) => key == "color" || value == 2);
+
+            //-----------------------object map
+
+            function map(obj, callBack) {
+                let result = {};
+                for (let key in obj) {
+                    result = { ...result, ...callBack(key, obj[key]) };
+                    return result;
+                }
+            }
+
+            map({ name: "Иван", age: 17 }, function (key, value) {
+                var result = {};
+                result[key + "_"] = value + "$";
+                return result;
+            }); //должен вернуть {name_: "Иван$", age_: "17$"}
+
+            //-----------------------Рекурсия
+
+            function progression_sum(max_num_in_progressian) {
+                if (max_num_in_progressian === 1) return 1;
+
+                console.log(max_num_in_progressian);
+                let result =
+                    progression_sum(max_num_in_progressian - 1) +
+                    max_num_in_progressian;
+                console.log(max_num_in_progressian, result);
+
+                return result;
+            }
+
+            console.log(progression_sum(5));
+            
+
+        </script>
+    </body>
+</html>