Browse Source

HW8 done and 50%HW9

AntonPyvovarov 1 year ago
parent
commit
595300eaed
4 changed files with 176 additions and 0 deletions
  1. 12 0
      HW8/index.html
  2. 105 0
      HW8/main.js
  3. 12 0
      HW9/index.html
  4. 47 0
      HW9/main.js

+ 12 - 0
HW8/index.html

@@ -0,0 +1,12 @@
+<!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>HW8</title>
+</head>
+<body>
+    <script src="main.js"></script>
+</body>
+</html>

+ 105 - 0
HW8/main.js

@@ -0,0 +1,105 @@
+// sort
+{
+    var persons = [
+        { name: "Иван", age: 17 },
+        { name: "Мария", age: 35 },
+        { name: "Алексей", age: 73 },
+        { name: "Яков", age: 12 },
+    ]
+
+    function sort(arr, type, bool = true) {
+        return arr.sort((a, b) => {
+            let result;
+            if (bool) {
+                console.log('true')
+                result = a[type] > b[type] ? 1 : -1;
+            } else {
+                console.log('false')
+                result = a[type] < b[[type]] ? 1 : -1;
+            }
+            return result
+        })
+    }
+    console.log(sort(persons, 'name', false))
+
+}
+
+// array map
+
+{
+    let arr = ["20", null, undefined, "5", {}, 700];
+
+    let arrMap = arr.map(function (item, index, arr) {
+        let number = parseInt(item);
+        return isNaN(number) ? item : number;
+    });
+
+    console.log(arrMap);
+}
+
+// array reduce
+
+{
+    let arr = ["0", 5, 3, "string", null];
+
+    let result = arr.reduce(function (previousValue, currentValue) {
+        if (typeof (currentValue) === 'number') {
+            previousValue *= currentValue;
+        };
+        return previousValue
+    }, 1)
+    alert(result);
+}
+
+// object filter
+{
+    let phone = {
+        brand: "meizu",
+        model: "m2",
+        ram: 2,
+        color: "black",
+    };
+
+    function filter(object, func) {
+        for (let key in object) {
+            if (!func(key, object[key])) {
+                delete object[key];
+            }
+        }
+        return object;
+    }
+
+    console.log(filter(phone, (key, value) => key == "color" || value == 2));
+}
+
+// object map
+{
+    function map(object, func) {
+        const fields = [];
+        for (let key in object) {
+            fields.push(func(key, object[key]));
+        }
+        return Object.assign({}, ...fields);
+    }
+    console.log(
+        map({ name: "Иван", age: 17 }, function (key, value) {
+            let result = {};
+            result[key + "_"] = value + "$";
+            return result;
+        })
+    );
+}
+
+//sum recursion
+{
+    function sum(n) {
+        if (n === 0) {
+            return 0
+        } else {
+            return n + sum(n - 1);
+        }
+    }
+
+    console.log(sum(100));
+
+}

+ 12 - 0
HW9/index.html

@@ -0,0 +1,12 @@
+<!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>HW9</title>
+</head>
+<body>
+    <script src="main.js"></script>
+</body>
+</html>

+ 47 - 0
HW9/main.js

@@ -0,0 +1,47 @@
+// makeProfileTimer
+{
+    function makeProfileTimer() {
+        let t0 = performance.now();
+        return function tn() {
+            let t1 = performance.now();
+            return (t1 - t0) * 1000 + 'microseconds';
+        };
+    }
+
+    let timer = makeProfileTimer();
+    alert("Замеряем время работы этого alert");
+    alert(timer());
+}
+
+// makeSaver
+{
+
+}
+
+// Final Countdown
+
+{
+    let seconds = 5;
+    function timer() {
+        console.log(seconds);
+        const timeout = setTimeout(() => {
+            timer();
+        }, 1000);
+        if (seconds > 0) {
+            return (function () {
+                return seconds--;
+            })();
+        }
+        clearTimeout(timeout);
+        if (seconds === 0) {
+            console.log("поехали!");
+        }
+    }
+    timer();
+
+}
+
+// myBind 
+{
+
+}