|
@@ -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)));
|