Browse Source

Make a second part of tasks in functions homework

Bonyant 2 năm trước cách đây
mục cha
commit
9a4a9eb214
3 tập tin đã thay đổi với 208 bổ sung1 xóa
  1. 1 0
      03/script.js
  2. 1 1
      05/index.html
  3. 206 0
      05/script.js

+ 1 - 0
03/script.js

@@ -269,6 +269,7 @@
 // while (prompt("Остановить?") === null ? true : false);
 
 // progression sum
+
 // let n = 20;
 // let sum = 0;
 // for (let i = 1; i <= n; i += 3) {

+ 1 - 1
05/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <script src="script.js"></script>
-    <title>JavaScript Function Scopes</title>
+    <title>JavaScript Function Scopes (1, 2)</title>
   </head>
   <body></body>
 </html>

+ 206 - 0
05/script.js

@@ -104,3 +104,209 @@
 //   sum: sum(10, 20, 30, 100),
 // };
 // tasks[sampleDec];
+
+// ДЗ: Функции 2, ES6
+
+// a - simplified
+
+// let aSim = (text) => alert(text);
+
+// cube - simplified
+
+// let cubeSim = (num = 1) => (Number.isNaN(+num) ? "Error" : num ** 3);
+
+// avg2 - simplified
+
+// let avg2Sim = (a, b) =>
+//   !Number.isNaN(+a) &&
+//   !Number.isNaN(+b) &&
+//   typeof +a === "number" &&
+//   typeof +b === "number"
+//     ? ((a + b) / 2).toFixed(1)
+//     : "Error";
+
+// sum && sum3 - simplified
+
+// let sumSim = (...arguments) => arguments.reduce((a, b) => a + b);
+
+// intRandom - simplified
+
+// let intRandomSim = (...range) => {
+//   let random;
+//   if (range[0] === range[1] && range[0] < 0 && range[1] < 0) {
+//     return range[0];
+//   }
+//   range.length > 1
+//     ? (random = Math.random() * range[1] + range[0])
+//     : (random = Math.random() * range[0] + 0);
+//   return Math.round(random);
+// };
+
+// greetAll - simplified
+
+// let greetAllSim = (...anybody) => alert("Hello " + anybody.join(", "));
+
+// sort
+
+// const persons = [
+//   { name: "Иван", age: 17 },
+//   { name: "Мария", age: 35 },
+//   { name: "Алексей", age: 73 },
+//   { name: "Яков", age: 12 },
+// ];
+
+// function sort(obj, field, asc = true) {
+//   if (asc) {
+//     for (let i = 0, endI = obj.length - 1; i < endI; i++) {
+//       for (let j = 0, endJ = endI - i; j < endJ; j++) {
+//         if (obj[j][field] > obj[j + 1][field]) {
+//           let swap = obj[j];
+//           obj[j] = obj[j + 1];
+//           obj[j + 1] = swap;
+//         }
+//       }
+//     }
+//   } else {
+//     for (let i = 0, endI = obj.length - 1; i < endI; i++) {
+//       for (let j = 0, endJ = endI - i; j < endJ; j++) {
+//         if (obj[j][field] < obj[j + 1][field]) {
+//           let swap = obj[j];
+//           obj[j] = obj[j + 1];
+//           obj[j + 1] = swap;
+//         }
+//       }
+//     }
+//   }
+//   return obj;
+// }
+// console.log(sort(persons, "age", false));
+
+// array map
+
+// const arrayMap = ["1", {}, null, undefined, "500", 700];
+// const newArrayMap = arrayMap.map((value) =>
+//   typeof +value === "number" && value !== null && !Number.isNaN(+value)
+//     ? +value
+//     : value
+// );
+// console.log(newArrayMap);
+
+// array reduce
+
+// const arrayReduce = ["0", 5, 3, "string", null];
+// const resultArrayReduce = arrayReduce.reduce(function (prev, curr) {
+//   if (typeof curr === "number") {
+//     prev *= curr;
+//   }
+//   return prev;
+// }, 1);
+// console.log(resultArrayReduce);
+
+// object filter
+
+// const phone = {
+//   brand: "meizu",
+//   model: "m2",
+//   ram: 2,
+//   color: "black",
+// };
+
+// function filter(obj, func) {
+//   const newObj = {};
+//   for (let [key, value] of Object.entries(obj)) {
+//     if (func(key, value)) {
+//       newObj[key] = value;
+//     }
+//   }
+//   return newObj;
+// }
+// console.log(filter(phone, (key, value) => key == "color" || value == 2));
+
+// object map
+
+// const person = {
+//   name: "Иван",
+//   age: 17,
+// };
+
+// function map(obj, func) {
+//   let newObj = {};
+//   for (let [key, value] of Object.entries(obj)) {
+//     if (func(key, value)) {
+//       newObj[key] = { ...func(key, value) };
+//     }
+//   }
+//   let result = {};
+//   for (let key in newObj) {
+//     result = Object.assign(result, newObj[key]);
+//   }
+//   return result;
+// }
+
+// console.log(
+//   map(person, function (key, value) {
+//     let result = {};
+//     result[key + "_"] = value + "$";
+//     return result;
+//   })
+// );
+
+// Рекурсия
+
+// Sum
+
+// function recSum(n) {
+//   if (n < 1) return 1;
+//   return n + recSum(n - 1);
+// }
+// console.log(recSum(5));
+
+// HTML Tree
+
+// const someTree = {
+//   tagName: "table",
+//   subTags: [
+//     {
+//       tagName: "tr",
+//       subTags: [
+//         {
+//           tagName: "td",
+//           text: "some text",
+//           content: "Text",
+//         },
+//         {
+//           tagName: "td",
+//           text: "some text 2",
+//           content: "Text",
+//         },
+//       ],
+//     },
+//   ],
+//   attrs: {
+//     border: 1,
+//   },
+// };
+
+// let constructor = "";
+// function recConstr(tree) {
+//   if (tree.tagName) {
+//     constructor += `<${tree.tagName} ${
+//       tree.attrs ? [...Object.keys(tree.attrs)] + "=" : ""
+//     }${
+//       tree.attrs ? "'" + [...Object.values(tree.attrs)] + "'" : ""
+//     } class='obj${
+//       tree.tagName.slice(0, 1).toUpperCase() + tree.tagName.slice(1)
+//     }'>`;
+//     tree.content ? (constructor += `${tree.content}`) : "";
+//     if (tree.subTags) {
+//       for (let i = 0; i < tree.subTags.length; i++) {
+//         recConstr({ ...tree.subTags[i] });
+//       }
+//     }
+//     constructor += `</${tree.tagName}>`;
+//     return constructor;
+//   } else {
+//     return "Error";
+//   }
+// }
+// console.log(document.write(recConstr(someTree)));