123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- function es6() {
- // в прошлом задании я старался использовать es6
- // вот новые переделанные функции
- function sum3(a = 0, b = 0, c = 0) {
- return a + b + c;
- } // sum3
- function sum(...arr){
- return arr.reduce((a, b) => {
- return a + b;
- });
- } // sum
- } // ES6
- function sort(arr, key='age', boolean=true) {
- for (let j = arr.length-1; j > 0; j--) {
- for (let i = 0; i < j; i++) {
- if (boolean ? arr[i][key] > arr[i + 1][key]: arr[i][key] < arr[i + 1][key]) {
- let temp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = temp;
- }
- }
- }
- return arr;
- } // sort
- let persons = [
- {name: "Иван", age: 17},
- {name: "Мария", age: 35},
- {name: "Алексей", age: 73},
- {name: "Яков", age: 12},
- ]; // данные для sort
- console.log(sort(persons, "age",true)); // пример вызова sort
- function arrayMap(arr) {
- return arr.map(item => {
- return (typeof item === 'string' ? +item : item) || item;
- });
- } // array map
- console.log(arrayMap(["1", {}, null, undefined, "500", 700])); // пример вызова array map
- function arrayReduce(arr) {
- return arr.reduce((accum, item) => {
- return typeof(item) === "number" ? accum * item : accum * 1;
- }, 1);
- } // array reduce
- console.log(arrayReduce(["0", 5, 3, "string", null])); // пример вызова array reduce
- function objectFilter(obj, func) {
- let result = {};
- for (let key in obj) {
- if (func(key, obj[key])) {
- result[key] = obj[[key]];
- }
- }
- return result;
- } // object filter
- let phone = {
- brand: "meizu",
- model: "m2",
- ram: 2,
- color: "black",
- }; // данные для object filter
- console.log(objectFilter(phone,(key, value) => key === "color" || value === 2)); // пример вызова object filter
- function map(obj, func){
- let result = {};
- for (const key in obj) {
- result = Object.assign(result, func(key, obj[key]));
- }
- return result;
- } // object map
- console.log(map({name: "Иван", age: 17} ,function(key, value){
- let result = {};
- result[key+"_"] = value + "$";
- return result;
- })); // пример вызова object map
- // Рекурсия
- function sums(n) {
- return (n === 1) ? n : n * sums(n-1);
- } // Sum
- console.log(sums(10)); // пример вызова Sum
- function htmlTree(someTree, str = '') {
- if ('tagName' in someTree) {
- if ('attrs' in someTree) {
- let artStr = '';
- for (const atr in someTree['attrs']) {
- artStr += `${atr}: ${someTree['attrs'][atr]};`;
- }
- str += `<${someTree['tagName']} style=\"${artStr}\">`;
- }
- else{
- str += `<${someTree['tagName']}>`;
- }
- }
- if ('text' in someTree) {
- str += `${someTree['text']}`;
- }
- if ('subTags' in someTree) {
- for (let i = 0; i < someTree['subTags'].length; i++) {
- str = htmlTree(someTree['subTags'][i], str);
- }
- }
- str += `</${someTree['tagName']}>`;
- return str;
- } // HTML Tree
- let someTree = {
- tagName: "table", //html tag
- subTags: [ //вложенные тэги
- {
- tagName: "tr",
- subTags: [
- {
- tagName: "td",
- text: "some text",
- },
- {
- tagName: "td",
- text: "some text 2",
- }
- ]
- }
- ],
- attrs:
- {
- border: 1,
- margin: 10,
- padding: 1,
- },
- } // тестовые данные для задания на синий пояс
- console.log(htmlTree(someTree)); // вызов задания на синий пояс
|