main.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. // Task sort
  2. // let persons = [
  3. // {name: "Иван", age: 17},
  4. // {name: "Мария", age: 35},
  5. // {name: "Алексей", age: 73},
  6. // {name: "Яков", age: 12},
  7. // ];
  8. // function sort (arr, key, boolean = true) {
  9. // for (let i = 0; i < (arr.length - 1); i++) {
  10. // for (let q = 0; q < arr.length - 1; q++) {
  11. // if (arr[q][key] > arr[q + 1][key]) {
  12. // let b = arr[q];
  13. // arr[q] = arr[q + 1];
  14. // arr[q + 1] = b;
  15. // };
  16. // if ((arr[q][key] < arr[q + 1][key]) && !boolean ) {
  17. // let b = arr[q];
  18. // arr[q] = arr[q + 1];
  19. // arr[q +1] = b;
  20. // };
  21. // };
  22. // };console.log(arr);
  23. // return arr;
  24. // };
  25. // sort(persons, 'name', false);
  26. //Task array map
  27. // let myArray = ["1", {}, null, undefined, "500", 700];
  28. // function changStringToNumber (arr) {
  29. // for (let i = 0; i < arr.length; i++) {
  30. // if (typeof (arr[i]) === 'string') {
  31. // arr[i] = +arr[i];
  32. // };
  33. // };
  34. // console.log(arr);
  35. // return arr;
  36. // };
  37. // changStringToNumber(myArray);
  38. //2
  39. // let myArray = ["1", {}, null, undefined, "500", 700];
  40. // let newArray = myArray.map( function (value) {
  41. // if (typeof(value) === 'string') {
  42. // value = +value;
  43. // return value;
  44. // };
  45. // return value;
  46. // });
  47. // console.log(newArray);
  48. //Task array reduce
  49. // let myArray = ["0", 5, 3, "string", null];
  50. // function multiplicationStrings (arr) {
  51. // let result = 1;
  52. // for (let i = 0; i < arr.length; i++) {
  53. // if (typeof (arr[i]) === 'number') {
  54. // result *= (+arr[i]);
  55. // };
  56. // };
  57. // console.log(result);
  58. // return result;
  59. // };
  60. // multiplicationStrings(myArray);
  61. //2
  62. // let myArray = ["0", 5, 3, "string", null];
  63. // let result = myArray. reduce(function multiplicationStrings (acum, curentVal) {
  64. // if (typeof(curentVal) === 'number') {
  65. // return (acum * curentVal);
  66. // };
  67. // return acum;
  68. // }, 1);
  69. // console.log(result);
  70. //Task object filter
  71. // var phone = {
  72. // brand: "meizu",
  73. // model: "m2",
  74. // ram: 2,
  75. // color: "black",
  76. // };
  77. // function myFilter (obj, func) {
  78. // let newObj = {};
  79. // for (let key in obj) {
  80. // let checkArg = func (key, value =obj[key]);
  81. // if (checkArg) {
  82. // newObj[key] = value;
  83. // };
  84. // };
  85. // return newObj;
  86. // };
  87. // let check = myFilter(phone,(key,value) => key == "color" || value == 2);
  88. // console.log (check);
  89. //Task object map
  90. // function myMap (obj, func) {
  91. // let newObj = {};
  92. // for (let key in obj) {
  93. // let checkArg = func (key, value =obj[key]);
  94. // Object.assign(newObj,checkArg);
  95. // };
  96. // return newObj;
  97. // };
  98. // let check = myMap({name: "Иван", age: 17},function(key,value){
  99. // var result = {};
  100. // result[key+"_"] = value + "$";
  101. // return result;
  102. // }); //должен вернуть {name_: "Иван$", age_: "17$"}
  103. // console.log(check);
  104. // Task Sum
  105. // function calculationSumArithmProgr (a, d, n) {
  106. // if (n === 1) {
  107. // return a;
  108. // };
  109. // return (calculationSumArithmProgr(a, d, n-1) + (a + d * (n - 1)));
  110. // };
  111. // let check = calculationSumArithmProgr(5, 7, 3);
  112. // console.log(check);
  113. //Task HTML Tree
  114. var someTree = {
  115. tagName: "table", //html tag
  116. children: [ //вложенные тэги
  117. {
  118. tagName: "tr",
  119. children: [
  120. {
  121. tagName: "td",
  122. text: "some text",
  123. },
  124. {
  125. tagName: "td",
  126. text: "some text 2",
  127. }
  128. ]
  129. }
  130. ],
  131. attrs:
  132. {
  133. border: 1,
  134. },
  135. }
  136. function builder (obj) {
  137. let {tagName, attrs, text, children} = obj;
  138. let attributes = '';
  139. if (attrs) {
  140. for (const [key, value] of Object.entries(attrs)) {
  141. attributes += `${key} = ${value}` ;
  142. };
  143. };
  144. if (!children) {
  145. return `<${tagName} ${attributes}>${text}</${tagName}>`;
  146. };
  147. let siblings = '';
  148. for (let i = 0; i < children.length; i++) {
  149. siblings += `${builder(children[i])}\n`;
  150. };
  151. return `<${tagName} ${attributes}>\n ${siblings}</${tagName}>\n`;
  152. };
  153. let check = builder(someTree);
  154. document.write(check);