associative_arrays1.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. // 3 persons------------------------------------------------------------------------------------------------------------------------------------//
  2. // let a = {
  3. // name: "Alexandra",
  4. // surname: "Olefirenko",
  5. // };
  6. // let b = {
  7. // name: "Platon",
  8. // surname: "Plokhenko",
  9. // };
  10. // let c = {
  11. // name: "Sofia",
  12. // surname: "Sternenko",
  13. // };
  14. // different fields---------------------------------------------------------------------------------------------------------------------------------------------------;
  15. // let a = {
  16. // name: "Alexandra",
  17. // surname: "Olefirenko",
  18. // sex: "female",
  19. // age: 21,
  20. // };
  21. // let b = {
  22. // name: "Platon",
  23. // surname: "Plokhenko",
  24. // education: "Bachelor degree",
  25. // age: 18,
  26. // };
  27. // let c = {
  28. // name: "Sofia",
  29. // surname: "Sternenko",
  30. // fathername: "Vyktoryvna",
  31. // age: 27,
  32. // };
  33. // fields check---------------------------------------------------------------------------------------------------------------------------------------------------;
  34. let a = {
  35. name: "Alexandra",
  36. surname: "Olefirenko",
  37. sex: "female",
  38. age: 21,
  39. };
  40. let b = {
  41. name: "Platon",
  42. surname: "Plokhenko",
  43. education: "Bachelor degree",
  44. age: 18,
  45. };
  46. let c = {
  47. name: "Sofia",
  48. surname: "Sternenko",
  49. fathername: "Vyktoryvna",
  50. age: 27,
  51. };
  52. if (Object.keys(a).includes("age", "sex")) {
  53. console.log(a.sex, a.age);
  54. } else {
  55. console.log("Not here");
  56. }
  57. if (Object.keys(b).includes("age", "education")) {
  58. console.log(b.sex, b.education);
  59. } else {
  60. console.log("Not here");
  61. }
  62. if (Object.keys(c).includes("fathername", "age")) {
  63. console.log(c.fathername, c.age);
  64. } else {
  65. console.log("Not here");
  66. }
  67. // array of persons---------------------------------------------------------------------------------------------------------------------------------------------------;
  68. let persons = [
  69. (a = {
  70. name: "Alexandra",
  71. surname: "Olefirenko",
  72. sex: "F",
  73. age: 21,
  74. }),
  75. (b = {
  76. name: "Platon",
  77. surname: "Plokhenko",
  78. sex: "M",
  79. age: 18,
  80. education: "Bachelor degree",
  81. }),
  82. (c = {
  83. name: "Mariya",
  84. surname: "Sternenko",
  85. fathername: "Vyktoryvna",
  86. sex: "F",
  87. age: 27,
  88. region: "Kyiv",
  89. phoneNumber: "0731232323",
  90. }),
  91. ];
  92. // loop of persons-----------------------------------------------------------------------------------------------------------------------------------------------------------;
  93. for (i = 0; i < persons.length; i++) {
  94. console.log(persons[i]);
  95. }
  96. // loop of name and surname---------------------------------------------------------------------------------------------------------------------------------------------------;
  97. for (let i = 0; i < persons.length; i++) {
  98. if (
  99. typeof persons[i].name === "string" &&
  100. typeof persons[i].surname === "string"
  101. ) {
  102. for (key in persons[i]) {
  103. }
  104. console.log(
  105. "name: " +
  106. " " +
  107. persons[i].name +
  108. "," +
  109. " " +
  110. "surname: " +
  111. " " +
  112. persons[i].surname
  113. );
  114. } else {
  115. alert("error");
  116. }
  117. }
  118. // loop of loop of values---------------------------------------------------------------------------------------------------------------------------------------------------;
  119. for (i = 0; i <= persons.length; i++) {
  120. for (let key in persons[i]) {
  121. console.log(key + ": " + persons[i][key]);
  122. }
  123. }
  124. // fullName---------------------------------------------------------------------------------------------------------------------------------------------------;
  125. for (let i = 0; i <= persons.length; i++) {
  126. for (let key in persons[i]) {
  127. if ("fathername" in persons[i]) {
  128. console.log(
  129. (persons[i].fullName =
  130. persons[i].surname +
  131. " " +
  132. persons[i].name +
  133. " " +
  134. persons[i].fathername)
  135. );
  136. } else {
  137. console.log(
  138. (persons[i].fullName = persons[i].surname + " " + persons[i].name)
  139. );
  140. }
  141. }
  142. }
  143. // serialize---------------------------------------------------------------------------------------------------------------------------------------------------;
  144. JSON.stringify(persons);
  145. // deserialize---------------------------------------------------------------------------------------------------------------------------------------------------;
  146. let d = JSON.parse('{"name": "Taras", "surname": "Shevchenko"}');
  147. persons.push(d);
  148. // HTML----------------------------------------------------------------------------------------------------------------------------------------------------------;
  149. document.write("</table>");
  150. document.write(
  151. '<table style = "border-collapse: collapse", "border: 1px solid black; ">'
  152. );
  153. document.write("<tr>");
  154. for (key in persons[0]) {
  155. document.write('<th style = "border: 1px solid black;">' + key + "</th>");
  156. }
  157. document.write("</tr>");
  158. for (let i = 0; i < persons.length; i++) {
  159. document.write("<tr>");
  160. for (value in persons[i]) {
  161. document.write(
  162. '<td style = "border: 1px solid black;">' + persons[i][value] + "</td>"
  163. );
  164. }
  165. document.write("</tr>");
  166. }
  167. document.write("</table>");
  168. // HTML optional fields---------------------------------------------------------------------------------------------------------------------------------------------------;
  169. {
  170. let headers = persons
  171. .reduce((a, b) => a.concat(Object.keys(b)), [])
  172. .filter((v, i, s) => s.indexOf(v) === i);
  173. str =
  174. `<table style = "border: 1px solid black; border-collapse: collapse;"><tr>${headers
  175. .map(
  176. (e) =>
  177. `<th style = "border: 1px solid black; border-collapse: collapse;">${e}</th>`
  178. )
  179. .join("\n")}</tr>` +
  180. persons
  181. .map(
  182. (e) =>
  183. `<tr>${headers
  184. .map(
  185. (e1) =>
  186. `<td style = "border: 1px solid black; border-collapse: collapse;">${
  187. e[e1] ? e[e1] : "-"
  188. }</td>`
  189. )
  190. .join("\n")}</tr>`
  191. )
  192. .join("\n") +
  193. `</table>`;
  194. document.write(str);
  195. }
  196. // HTML tr color---------------------------------------------------------------------------------------------------------------------------------------------------;
  197. {
  198. let headers = persons
  199. .reduce((a, b) => a.concat(Object.keys(b)), [])
  200. .filter((v, i, s) => s.indexOf(v) === i);
  201. str =
  202. `<table style = "border: 1px solid black; border-collapse: collapse;"><tr style = "background-color: #ffff00;" >${headers
  203. .map(
  204. (e) =>
  205. `<th style = "border: 1px solid black; border-collapse: collapse;">${e}</th>`
  206. )
  207. .join("\n")}</tr>` +
  208. persons
  209. .map(
  210. (e) =>
  211. `<tr style = "background-color: lightgreen;">${headers
  212. .map(
  213. (e1) =>
  214. `<td style = "border: 1px solid black; border-collapse: collapse;">${
  215. e[e1] ? e[e1] : "-"
  216. }</td>`
  217. )
  218. .join("\n")}</tr>`
  219. )
  220. .join("\n") +
  221. `</table>`;
  222. document.write(str);
  223. }
  224. // HTML th optional---------------------------------------------------------------------------------------------------------------------------------------------------;
  225. // Задание на синий пояс.---------------------------------------------------------------------------------------------------------------------------------------------------;
  226. // HTML constructor---------------------------------------------------------------------------------------------------------------------------------------------------------;
  227. let body = {
  228. tagName: "body",
  229. subTags: [
  230. {
  231. tagName: "div",
  232. subTags: [
  233. {
  234. tagName: "span",
  235. text: "Enter a data please:",
  236. },
  237. {
  238. tagName: "br",
  239. },
  240. {
  241. tagName: "input",
  242. attrs: {
  243. type: "text",
  244. id: "name",
  245. },
  246. },
  247. {
  248. tagName: "input",
  249. attrs: {
  250. type: "text",
  251. id: "surname",
  252. },
  253. },
  254. ],
  255. },
  256. {
  257. tagName: "div",
  258. subTags: [
  259. {
  260. tagName: "button",
  261. text: "OK",
  262. attrs: {
  263. id: "ok",
  264. },
  265. },
  266. {
  267. tagName: "button",
  268. text: "cancel",
  269. attrs: {
  270. id: "cancel",
  271. },
  272. },
  273. ],
  274. },
  275. ],
  276. };
  277. function createElem(tagName, attrs, text) {
  278. var elem = document.createElement(tagName);
  279. if (attrs) for (var name in attrs) elem.setAttribute(name, attrs[name]);
  280. if (text) elem.textContent = text;
  281. return elem;
  282. }
  283. function walker(tree) {
  284. var tagName = tree.tagName,
  285. attrs = tree.attrs,
  286. text = tree.text,
  287. elem = createElem(tagName, attrs, text);
  288. if (tree.subTags)
  289. tree.subTags.forEach(function (el) {
  290. el = walker(el);
  291. elem.appendChild(el);
  292. });
  293. return elem;
  294. }
  295. var table = walker(body);
  296. document.body.appendChild(table);
  297. // destruct array---------------------------------------------------------------------------------------------------------------------------------------------------;
  298. {
  299. let arr = [1, 2, 3, 4, 5, "a", "b", "c"];
  300. let evenArray = [];
  301. let oddArray = [];
  302. let lettersFromArr = [];
  303. for (let i = 0; i < arr.length; i++) {
  304. if (typeof arr[i] === "number") {
  305. if (arr[i] % 2 === 0) {
  306. evenArray.push(arr[i]);
  307. } else {
  308. oddArray.push(arr[i]);
  309. }
  310. } else {
  311. lettersFromArr.push(arr[i]);
  312. }
  313. }
  314. let [even1, even2] = evenArray;
  315. let [odd1, odd2, odd3] = oddArray;
  316. }
  317. // destruct string---------------------------------------------------------------------------------------------------------------------------------------------------;
  318. let arr1 = [1, "abc"];
  319. let [number, [s1, s2, s3]] = arr1;
  320. console.log(number);
  321. console.log(s1);
  322. console.log(s2);
  323. console.log(s3);
  324. // destruct 2---------------------------------------------------------------------------------------------------------------------------------------------------;
  325. let obj = {
  326. name: "Ivan",
  327. surname: "Petrov",
  328. children: [{ name: "Maria" }, { name: "Nikolay" }],
  329. };
  330. let {
  331. children: [{ name: name1 }, { name: name2 }],
  332. } = obj;
  333. console.log(name1);
  334. console.log(name2);
  335. // destruct 3---------------------------------------------------------------------------------------------------------------------------------------------------;
  336. {
  337. let arr = [1, 2, 3, 4, 5, 6, 7, 10];
  338. let { 0: a, 1: b, length } = arr;
  339. console.log(a);
  340. console.log(b);
  341. console.log(length);
  342. }