script.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. // ДЗ: Вложенные декларативные структуры и код в них. Отображение циклических и древовидных структур. Циклы.
  2. // html tree
  3. // <body>
  4. // <div>
  5. // <span>Enter a data please:</span><br/>
  6. // <input type='text' id='name'>
  7. // <input type='text' id='surname'>
  8. // </div>
  9. // <div>
  10. // <button id='ok'>OK</button>
  11. // <button id='cancel'>Cancel</button>
  12. // </div>
  13. // </body>
  14. // const structure = {
  15. // body: {
  16. // tagName: "body",
  17. // subTags: [
  18. // {
  19. // tagName: "div",
  20. // subTags: [
  21. // {
  22. // tagName: "span",
  23. // text: "Enter a data please:",
  24. // },
  25. // {
  26. // tagName: "br",
  27. // },
  28. // {
  29. // tagName: "input",
  30. // attrs: {
  31. // type: "text",
  32. // id: "name",
  33. // },
  34. // },
  35. // {
  36. // tagName: "input",
  37. // attrs: {
  38. // type: "text",
  39. // id: "surname",
  40. // },
  41. // },
  42. // ],
  43. // },
  44. // {
  45. // tagName: "div",
  46. // subTags: [
  47. // {
  48. // tagName: "button",
  49. // attrs: {
  50. // id: "ok",
  51. // },
  52. // text: "OK",
  53. // },
  54. // {
  55. // tagName: "button",
  56. // attrs: {
  57. // id: "cancel",
  58. // },
  59. // text: "Cancel",
  60. // },
  61. // ],
  62. // },
  63. // ],
  64. // },
  65. // };
  66. // alert(
  67. // `Значения текста во второй кнопке: ${structure.body.subTags[1].subTags[1].text}.\nЗначение атрибута id во втором input: ${structure.body.subTags[0].subTags[3].attrs.id}`
  68. // );
  69. // declarative fields
  70. // const notebook = {
  71. // brand: prompt("Введите брэнд ноутбука").trim(),
  72. // type: prompt("Введите тип ноутбука").trim(),
  73. // model: prompt("Введите модель ноутбука").trim(),
  74. // ram: +prompt("Введите количество памяти ноутбука").trim(),
  75. // size: prompt("Введите размер в дюймах ноутбука").trim(),
  76. // weight: +prompt("Введите вес ноутбука").trim(),
  77. // resolution: {
  78. // width: +prompt("Введите ширину в пикселях ноутбука").trim(),
  79. // height: +prompt("Введите высоту в пикселях ноутбука").trim(),
  80. // },
  81. // };
  82. // const phone = {
  83. // brand: prompt("Введите брэнд телефона").trim(),
  84. // model: prompt("Введите модель телефона").trim(),
  85. // ram: +prompt("Введите память телефона").trim(),
  86. // color: prompt("Введите цвет телефона").trim(),
  87. // };
  88. // const person = {
  89. // name: prompt("Введите имя человека").trim(),
  90. // surname: prompt("Введите фамилию человека").trim(),
  91. // married: confirm("Этот человек женат(замужем)?"),
  92. // };
  93. // let strObj = "<table border='1'>";
  94. // for (let [key, value] of Object.entries(person)) {
  95. // strObj += "<tr>";
  96. // strObj += "<td>";
  97. // strObj += key[0].toUpperCase() + key.slice(1);
  98. // strObj += "</td>";
  99. // strObj += "<td>";
  100. // strObj +=
  101. // typeof value === "string"
  102. // ? value[0].toUpperCase() + value.slice(1)
  103. // : typeof value === "object"
  104. // ? Object.values(value)
  105. // : value === true
  106. // ? (value = "Yes")
  107. // : value === false
  108. // ? (value = "No")
  109. // : value;
  110. // strObj += "</td>";
  111. // strObj += "</tr>";
  112. // }
  113. // strObj += "</table>";
  114. // document.write(strObj);
  115. // object links
  116. // const info = {
  117. // person: {
  118. // name: prompt("Введите имя человека").trim() || "John",
  119. // surname: prompt("Введите фамилию человека").trim() || "Johnson",
  120. // married: confirm("Этот человек женат(замужем)?") || true,
  121. // },
  122. // notebook: {
  123. // brand: prompt("Введите брэнд ноутбука").trim() || "Dell",
  124. // type: prompt("Введите тип ноутбука").trim() || "Latitude",
  125. // model: prompt("Введите модель ноутбука").trim() || "E5450",
  126. // ram: +prompt("Введите количество памяти ноутбука").trim() || 4,
  127. // size: prompt("Введите размер в дюймах ноутбука").trim() || "15",
  128. // weight: +prompt("Введите вес ноутбука").trim() || 2,
  129. // resolution: {
  130. // width: +prompt("Введите ширину в пикселях ноутбука").trim() || 1920,
  131. // height: +prompt("Введите высоту в пикселях ноутбука").trim() || 1080,
  132. // },
  133. // },
  134. // phone: {
  135. // brand: prompt("Введите брэнд телефона").trim() || "Samsung",
  136. // model: prompt("Введите модель телефона").trim() || "A50",
  137. // ram: +prompt("Введите память телефона").trim() || 4,
  138. // color: prompt("Введите цвет телефона").trim() || "Blue",
  139. // },
  140. // };
  141. // let strObj;
  142. // strObj = "<table border='1' class='personInfo'>";
  143. // strObj += "<caption>Person Info</caption>";
  144. // for (let [key, value] of Object.entries(info.person)) {
  145. // strObj += "<tr>";
  146. // strObj += "<td>";
  147. // strObj += key[0].toUpperCase() + key.slice(1);
  148. // strObj += "</td>";
  149. // strObj += "<td>";
  150. // strObj +=
  151. // typeof value === "string"
  152. // ? value[0].toUpperCase() + value.slice(1)
  153. // : typeof value === "object"
  154. // ? Object.values(value)
  155. // : value === true
  156. // ? (value = "Yes")
  157. // : value === false
  158. // ? (value = "No")
  159. // : value;
  160. // strObj += "</td>";
  161. // strObj += "</tr>";
  162. // }
  163. // strObj += "</table>";
  164. // info.person.notebook = `${info.notebook.brand} ${info.notebook.type} ${info.notebook.model}`;
  165. // info.person.phone = `${info.phone.brand} ${info.phone.model}` || "None";
  166. // document.write(strObj);
  167. // strObj = "<table border='1' class='notebookInfo'>";
  168. // strObj += "<caption>Notebook Info</caption>";
  169. // for (let [key, value] of Object.entries(info.notebook)) {
  170. // strObj += "<tr>";
  171. // strObj += "<td>";
  172. // strObj += key[0].toUpperCase() + key.slice(1);
  173. // strObj += "</td>";
  174. // strObj += "<td>";
  175. // strObj +=
  176. // typeof value === "string"
  177. // ? value[0].toUpperCase() + value.slice(1)
  178. // : typeof value === "object"
  179. // ? Object.values(value)
  180. // : value === true
  181. // ? (value = "Yes")
  182. // : value === false
  183. // ? (value = "No")
  184. // : value;
  185. // strObj += "</td>";
  186. // strObj += "</tr>";
  187. // }
  188. // strObj += "</table>";
  189. // info.notebook.owner = `${info.person.name} ${info.person.surname}` || "None";
  190. // document.write(strObj);
  191. // strObj = "<table border='1' class='phoneInfo'>";
  192. // strObj += "<caption>Phone Info</caption>";
  193. // for (let [key, value] of Object.entries(info.phone)) {
  194. // strObj += "<tr>";
  195. // strObj += "<td>";
  196. // strObj += key[0].toUpperCase() + key.slice(1);
  197. // strObj += "</td>";
  198. // strObj += "<td>";
  199. // strObj +=
  200. // typeof value === "string"
  201. // ? value[0].toUpperCase() + value.slice(1)
  202. // : typeof value === "object"
  203. // ? Object.values(value)
  204. // : value === true
  205. // ? (value = "Yes")
  206. // : value === false
  207. // ? (value = "No")
  208. // : value;
  209. // strObj += "</td>";
  210. // strObj += "</tr>";
  211. // }
  212. // strObj += "</table>";
  213. // info.phone.owner = `${info.person.name} ${info.person.surname}` || "None";
  214. // document.write(strObj);
  215. // imperative array fill 3
  216. // const impArray = [];
  217. // impArray[0] = prompt("Введите 1 элемент массива");
  218. // impArray[1] = prompt("Введите 2 элемент массива");
  219. // impArray[2] = prompt("Введите 3 элемент массива");
  220. // alert(`Array: [${impArray}]`);
  221. // while confirm
  222. // while (!confirm("Отмена - продолжить while, ОК - отменить"));
  223. // array fill && array fill nopush
  224. // const arrayFill = [];
  225. // let arrayLen = 1;
  226. // for (let i = 0; i < arrayLen; i++) {
  227. // arrayFill[i] = prompt(
  228. // "Введите элемент для добавления его в массив | Отмена или пустой ввод - остановить добавление"
  229. // );
  230. // if (!!arrayFill[i] === false) {
  231. // arrayFill.splice(i, 1);
  232. // break;
  233. // }
  234. // arrayLen++;
  235. // }
  236. // alert(`Array: [${arrayFill}]`);
  237. // infinite probability
  238. // let itt = 0;
  239. // while (true) {
  240. // itt++;
  241. // let random = Math.random();
  242. // console.log(`Number ${itt}: ${random}`);
  243. // if (random > 0.9) {
  244. // break;
  245. // }
  246. // }
  247. // alert(`Itterations: ${itt}`);
  248. // empty loop
  249. // while (prompt("Остановить?") === null ? true : false);
  250. // progression sum
  251. // let n = 20;
  252. // let sum = 0;
  253. // for (let i = 1; i <= n; i += 3) {
  254. // sum += i;
  255. // }
  256. // alert(`Сумма арифметической прогрессии от 1 до ${n} с шагом 3: ${sum}`);
  257. // chess one line
  258. // let lenStr = +prompt("Введите длину строки").trim();
  259. // let str = " ";
  260. // console.log(lenStr);
  261. // if (!Number.isNaN(lenStr)) {
  262. // for (let i = 0; i < lenStr; i++) {
  263. // str += "#";
  264. // }
  265. // str += " ";
  266. // alert(`Result: "${str}"`);
  267. // } else {
  268. // alert("Вы ввели некорректную длину строки");
  269. // }
  270. // numbers
  271. // let str = "";
  272. // for (let col = 0; col < 10; col++) {
  273. // for (let row = 0; row < 10; row++) {
  274. // str += row;
  275. // }
  276. // str += "\n";
  277. // }
  278. // alert(str);
  279. // chess
  280. // let chessLen = 10;
  281. // let chess = "";
  282. // for (let col = 0; col < chessLen; col++) {
  283. // for (let row = 0; row < chessLen / 2 + 1; row++) {
  284. // col % 2 === 0 ? (chess += ".#") : (chess += "#.");
  285. // }
  286. // chess += "\n";
  287. // }
  288. // alert(chess);
  289. // cubes
  290. // const cubes = [];
  291. // const arrayLen = 10;
  292. // for (let i = 0; i < arrayLen; i++) {
  293. // cubes.push(i ** 3);
  294. // }
  295. // alert(`Array: [${cubes}]`);
  296. // multiply table
  297. // let tableLen = 10;
  298. // const table = [];
  299. // for (let i = 0; i < tableLen; i++) {
  300. // table.push([]);
  301. // for (let j = 0; j < tableLen; j++) {
  302. // table[i][j] = i * j;
  303. // }
  304. // }
  305. // console.log(table);
  306. // matrix to html table
  307. // let str = "<table border='1'>";
  308. // for (let rowIndex = 0; rowIndex < 10; rowIndex++) {
  309. // str += "<tr>";
  310. // for (let tdIndex = 0; tdIndex < 10; tdIndex++) {
  311. // str += "<td>";
  312. // str += tdIndex * rowIndex;
  313. // str += "</td>";
  314. // }
  315. // str += "</tr>";
  316. // }
  317. // str += "</table>";
  318. // document.write(str);
  319. // Задание на синий пояс: Треугольник
  320. // const rectLen = 11;
  321. // let flag = 1;
  322. // let rect = "";
  323. // for (let i = 0; i < rectLen / 2; i++) {
  324. // for (let j = 0; j < rectLen / 4 - 2; j++) {
  325. // rect += ".".repeat((rectLen - flag) / 2);
  326. // rect += "#".repeat(flag);
  327. // rect += ".".repeat((rectLen - flag) / 2);
  328. // rect += "\n";
  329. // }
  330. // flag += 2;
  331. // }
  332. // console.log(rect);