script.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. // ------------------------------3 persons----------------------------------------------
  2. // let a = {
  3. // name: "Victor",
  4. // surname: "Basharov",
  5. // }
  6. // let b = {
  7. // name: "Dmitriy",
  8. // surname: "Ivanov",
  9. // }
  10. // let c = {
  11. // name: "John",
  12. // surname: "Doe",
  13. // }
  14. // ------------------------------different fields----------------------------------------------
  15. let a = {
  16. name: "Victor",
  17. surname: "Petrov",
  18. age: 35
  19. }
  20. let b = {
  21. name: "Dmitriy",
  22. surname: "Ivanov",
  23. fathername: "Alexandrovich"
  24. }
  25. let c = {
  26. name: "John",
  27. surname: "Doe",
  28. sex: "Male"
  29. }
  30. // ------------------------------fields check----------------------------------------------
  31. // for(let key1 in a) {
  32. // if(key1 === "age") {
  33. // alert(key1 + ': ' + a[key1]);
  34. // }
  35. // }
  36. // for(let key2 in b) {
  37. // if(key2 === "fathername") {
  38. // alert(key2 + ': ' + b[key2]);
  39. // }
  40. // }
  41. // for(let key3 in c) {
  42. // if(key3 === "sex") {
  43. // alert(key3 + ': ' + c[key3]);
  44. // }
  45. // }
  46. // ------------------------------array of persons----------------------------------------------
  47. let persons = [a, b, c];
  48. let newPerson = {
  49. name: "Alex",
  50. surname: "Man",
  51. isSportsman: true
  52. };
  53. persons[3] = newPerson;
  54. // ------------------------------loop of persons----------------------------------------------
  55. // for(let i in persons) {
  56. // console.log(persons[i])
  57. // }
  58. // ------------------------------loop of name and surname----------------------------------------------
  59. // for(let i=0; i<persons.length; i++) {
  60. // for(let key in persons[i]) {
  61. // if(key === "name" || key === "surname") {
  62. // console.log(persons[i][key]);
  63. // }
  64. // }
  65. // }
  66. // ------------------------------loop of loop of values----------------------------------------------
  67. // for(let i=0; i<persons.length; i++) {
  68. // for(let key in persons[i]) {
  69. // console.log(persons[i][key]);
  70. // }
  71. // }
  72. // ------------------------------fullName----------------------------------------------
  73. // for (let i = 0; i < persons.length; i++) {
  74. // persons[i].fullName = `${persons[i].name} ${persons[i].surname}` + (persons[i].fathername && (' ' + persons[i].fathername) || '');
  75. // }
  76. // for (let i in persons) {
  77. // console.log(persons[i].fullName)
  78. // }
  79. // ------------------------------serialize----------------------------------------------
  80. // let jsonPersons = JSON.stringify(persons);
  81. // console.log(jsonPersons);
  82. // ------------------------------deserialize----------------------------------------------
  83. // let jsonString = JSON.parse(persons)
  84. let jsonObject = JSON.parse(`{"name":"John","surname":"Doe","fathername":"Nathan"}`);
  85. persons[4] = jsonObject;
  86. console.log(persons);
  87. // ------------------------------HTML----------------------------------------------
  88. let str = "<table border='1'>";
  89. for (let i = 0; i < persons.length; i++) {
  90. str += `<tr> <td>${i+1}</td>`;
  91. for (let key in persons[i]) {
  92. str += `<td>${persons[i][key]}</td>`;
  93. }
  94. str += `<tr>`;
  95. }
  96. str += "</table>"
  97. // console.log(str);
  98. document.write(str);
  99. // ------------------------------HTML optional fields----------------------------------------------
  100. let str2 = "<table border='1'>";
  101. str2 += "<tr> <th>#</th> <th>Name</th> <th>Surname</th> <th>Aditional field</th> </tr>";
  102. // str += `<th>#</th>`;
  103. // str += `<th>Name</th>`;
  104. // str += `<th>Surname</th>`;
  105. // str += `<th>Aditional field</th>`;
  106. // str += `</tr>`;
  107. for (let i = 0; i < persons.length; i++) {
  108. str2 += `<tr> <td>${i+1}</td>`; // как оно работает без </tr> ???
  109. for (let key in persons[i]) {
  110. str2 += `<td>${persons[i][key]}</td>`;
  111. }
  112. }
  113. str2 += "</table>"
  114. // console.log(str2);
  115. document.write(str2);
  116. // ------------------------------HTML tr color----------------------------------------------
  117. let str3 = "<table border='1'>";
  118. str3 += "<tr> <th>#</th> <th>Name</th> <th>Surname</th> <th>Aditional field</th> </tr>";
  119. for (let i = 0; i < persons.length; i++) {
  120. if (i % 2) {
  121. str3 += `<tr style = "background: yellow"><td>${i+1}</td>`;
  122. } else {
  123. str3 += `<tr> <td>${i+1}</td>`;
  124. }
  125. for (let key in persons[i]) {
  126. str3 += `<td>${persons[i][key]}</td>`;
  127. }
  128. str += `<tr>`;
  129. }
  130. str3 += "</table>"
  131. // console.log(str3);
  132. document.write(str3);
  133. // ------------------------------HTML th optional----------------------------------------------
  134. let str4 = "<table border='1'>";
  135. str4 += "<tr>";
  136. for (let i = 0; i < persons.length; i++) {
  137. str4 += `<th>${i+1}</th>`;
  138. }
  139. str4 += "</tr>";
  140. for (let i = 0; i < persons.length; i++) {
  141. if (i % 2) {
  142. str4 += `<tr style = "background: yellow"><td>${i+1}</td>`;
  143. } else {
  144. str4 += `<tr> <td>${i+1}</td>`;
  145. }
  146. for (let key in persons[i]) {
  147. str4 += `<td>${persons[i][key]}</td>`;
  148. }
  149. str += `<tr>`;
  150. }
  151. str4 += "</table>"
  152. // console.log(str4);
  153. document.write(str4);
  154. // ------------------------------BLUE task----------------------------------------------
  155. let someTree = {
  156. tagName: "table", //html tag
  157. subTags: [ //вложенные тэги
  158. {
  159. tagName: "tr",
  160. subTags: [{
  161. tagName: "td",
  162. text: "some text",
  163. },
  164. {
  165. tagName: "td",
  166. text: "some text 2",
  167. }
  168. ]
  169. }
  170. ],
  171. attrs: {
  172. border: 1,
  173. },
  174. }
  175. let drawSomeTree = "";
  176. drawSomeTree += "<" + someTree.tagName;
  177. if ("attrs" in someTree) {
  178. // drawSomeTree += someTree.attrs;
  179. for(let aa in someTree.attrs) {
  180. drawSomeTree += " " + aa + '= "' + someTree.attrs[aa] + '" ';
  181. }
  182. }
  183. drawSomeTree += ">";
  184. if ("subTags" in someTree) {
  185. for (let i of someTree.subTags) {
  186. if ("tagName" in i) {
  187. drawSomeTree += "<" + i.tagName;
  188. }
  189. if ("attrs" in i) {
  190. drawSomeTree += i.attrs;
  191. }
  192. drawSomeTree += ">";
  193. if ("subTags" in i) {
  194. for (let j of i.subTags) {
  195. if ("tagName" in j) {
  196. drawSomeTree += "<" + j.tagName;
  197. }
  198. if ("attrs" in j) {
  199. drawSomeTree += j.attrs;
  200. }
  201. drawSomeTree += ">";
  202. if ("text" in j) {
  203. drawSomeTree += j.text;
  204. }
  205. drawSomeTree += "</" + j.tagName + ">";
  206. }
  207. }
  208. drawSomeTree += "</" + i.tagName + ">";
  209. }
  210. }
  211. drawSomeTree += "</" + someTree.tagName + ">";
  212. console.log(drawSomeTree);
  213. document.write(drawSomeTree);
  214. // ------------------------------destruct array----------------------------------------------
  215. let arr = [1, 2, 3, 4, 5, "a", "b", "c"]
  216. let [odd1, even1, odd2, even2, odd3, ...letters] = arr;
  217. // let [odd1, even1, odd2, even2, odd3, ...letters] = [1,2,3,4,5, "a", "b", "c"];
  218. console.log(odd1);
  219. console.log(even1);
  220. console.log(odd2);
  221. console.log(even2);
  222. console.log(odd3);
  223. console.log(letters);
  224. // ------------------------------destruct string----------------------------------------------
  225. let arr2 = [1, "abc"]
  226. let [number, [s1, s2, s3]] = arr2
  227. console.log(number);
  228. console.log(s1);
  229. console.log(s2);
  230. console.log(s3);
  231. // ------------------------------destruct 2----------------------------------------------
  232. let obj = {
  233. name: 'Ivan',
  234. surname: 'Petrov',
  235. children: [{
  236. name: 'Maria'
  237. }, {
  238. name: 'Nikolay'
  239. }]
  240. }
  241. let {
  242. children: [{
  243. name: name1
  244. }, {
  245. name: name2
  246. }]
  247. } = obj;
  248. console.log(name1);
  249. console.log(name2);
  250. // ------------------------------destruct 3----------------------------------------------
  251. let arrDes3 = [1, 2, 3, 4, 5, 6, 7, 10]; // I used the same formatting as in the task
  252. let {
  253. length: length,
  254. [0]: aDes3,
  255. [1]: bDes3
  256. } = arrDes3;
  257. console.log(aDes3);
  258. console.log(bDes3);
  259. console.log(length);