script.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  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 person = {
  117. // name: prompt("Введите имя человека").trim() || "John",
  118. // surname: prompt("Введите фамилию человека").trim() || "Johnson",
  119. // married: confirm("Этот человек женат(замужем)?") || true,
  120. // };
  121. // const laptop = {
  122. // brand: prompt("Введите брэнд ноутбука").trim() || "Dell",
  123. // type: prompt("Введите тип ноутбука").trim() || "Latitude",
  124. // model: prompt("Введите модель ноутбука").trim() || "E5450",
  125. // ram: +prompt("Введите количество памяти ноутбука").trim() || 4,
  126. // size: prompt("Введите размер в дюймах ноутбука").trim() || "15",
  127. // weight: +prompt("Введите вес ноутбука").trim() || 2,
  128. // resolution: {
  129. // width: +prompt("Введите ширину в пикселях ноутбука").trim() || 1920,
  130. // height: +prompt("Введите высоту в пикселях ноутбука").trim() || 1080,
  131. // },
  132. // };
  133. // const smartphone = {
  134. // brand: prompt("Введите брэнд телефона").trim() || "Samsung",
  135. // model: prompt("Введите модель телефона").trim() || "A50",
  136. // ram: +prompt("Введите память телефона").trim() || 4,
  137. // color: prompt("Введите цвет телефона").trim() || "Blue",
  138. // };
  139. // person.laptop = laptop; // `${laptop.brand} ${laptop.type} ${laptop.model}`
  140. // person.smartphone = smartphone; // `${smartphone.brand} ${smartphone.model}`
  141. // laptop.owner = person; // `${person.name} ${person.surname}`
  142. // smartphone.owner = person; //`${person.name} ${person.surname}`
  143. // let strObj;
  144. // strObj = "<table border='1' class='personInfo'>";
  145. // strObj += "<caption>Person Info</caption>";
  146. // for (let [key, value] of Object.entries(person)) {
  147. // strObj += "<tr>";
  148. // strObj += "<td>";
  149. // strObj += key[0].toUpperCase() + key.slice(1);
  150. // strObj += "</td>";
  151. // strObj += "<td>";
  152. // strObj +=
  153. // typeof value === "string"
  154. // ? value[0].toUpperCase() + value.slice(1)
  155. // : typeof value === "object"
  156. // ? Object.values(value)
  157. // : value === true
  158. // ? (value = "Yes")
  159. // : value === false
  160. // ? (value = "No")
  161. // : value;
  162. // strObj += "</td>";
  163. // strObj += "</tr>";
  164. // }
  165. // strObj += "</table>";
  166. // document.write(strObj);
  167. // strObj = "<table border='1' class='laptopInfo'>";
  168. // strObj += "<caption>Laptop Info</caption>";
  169. // for (let [key, value] of Object.entries(laptop)) {
  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. // document.write(strObj);
  190. // strObj = "<table border='1' class='smartphoneInfo'>";
  191. // strObj += "<caption>Smartphone Info</caption>";
  192. // for (let [key, value] of Object.entries(smartphone)) {
  193. // strObj += "<tr>";
  194. // strObj += "<td>";
  195. // strObj += key[0].toUpperCase() + key.slice(1);
  196. // strObj += "</td>";
  197. // strObj += "<td>";
  198. // strObj +=
  199. // typeof value === "string"
  200. // ? value[0].toUpperCase() + value.slice(1)
  201. // : typeof value === "object"
  202. // ? Object.values(value)
  203. // : value === true
  204. // ? (value = "Yes")
  205. // : value === false
  206. // ? (value = "No")
  207. // : value;
  208. // strObj += "</td>";
  209. // strObj += "</tr>";
  210. // }
  211. // strObj += "</table>";
  212. // document.write(strObj);
  213. // imperative array fill 3
  214. // const impArray = [];
  215. // impArray[0] = prompt("Введите 1 элемент массива");
  216. // impArray[1] = prompt("Введите 2 элемент массива");
  217. // impArray[2] = prompt("Введите 3 элемент массива");
  218. // alert(`Array: [${impArray}]`);
  219. // while confirm
  220. // while (!confirm("Отмена - продолжить while, ОК - отменить"));
  221. // array fill && array fill nopush
  222. // const arrayFill = [];
  223. // let arrayLen = 1;
  224. // for (let i = 0; i < arrayLen; i++) {
  225. // arrayFill[i] = prompt(
  226. // "Введите элемент для добавления его в массив | Отмена или пустой ввод - остановить добавление"
  227. // );
  228. // if (!!arrayFill[i] === false) {
  229. // arrayFill.splice(i, 1);
  230. // break;
  231. // }
  232. // arrayLen++;
  233. // }
  234. // alert(`Array: [${arrayFill}]`);
  235. // infinite probability
  236. // let itt = 0;
  237. // while (true) {
  238. // itt++;
  239. // let random = Math.random();
  240. // console.log(`Number ${itt}: ${random}`);
  241. // if (random > 0.9) {
  242. // break;
  243. // }
  244. // }
  245. // alert(`Itterations: ${itt}`);
  246. // empty loop
  247. // while (prompt("Остановить?") === null ? true : false);
  248. // progression sum
  249. // let n = 20;
  250. // let sum = 0;
  251. // for (let i = 1; i <= n; i += 3) {
  252. // sum += i;
  253. // }
  254. // alert(`Сумма арифметической прогрессии от 1 до ${n} с шагом 3: ${sum}`);
  255. // chess one line
  256. // let lenStr = +prompt("Введите длину строки").trim();
  257. // if (!Number.isNaN(lenStr)) {
  258. // let str = "";
  259. // for (let i = 0; i < lenStr; i++) {
  260. // i % 2 === 0 ? (str += " ") : (str += "#");
  261. // }
  262. // alert(`Result: "${str}"`);
  263. // } else {
  264. // alert("Вы ввели некорректную длину строки");
  265. // }
  266. // numbers
  267. // let str = "";
  268. // for (let col = 0; col < 10; col++) {
  269. // for (let row = 0; row < 10; row++) {
  270. // str += row;
  271. // }
  272. // str += "\n";
  273. // }
  274. // alert(str);
  275. // chess
  276. // let chessLen = 5;
  277. // let chess = "";
  278. // for (let col = 0; col < chessLen * 2; col++) {
  279. // for (let row = 0; row < chessLen; row++) {
  280. // if (col % 2 === 0) {
  281. // chess += ".";
  282. // chess += "#";
  283. // } else {
  284. // chess += "#";
  285. // chess += ".";
  286. // }
  287. // }
  288. // chess += "\n";
  289. // }
  290. // alert(chess);
  291. // cubes
  292. // const cubes = [];
  293. // const arrayLen = 10;
  294. // for (let i = 0; i < arrayLen; i++) {
  295. // cubes.push(i ** 3);
  296. // }
  297. // alert(`Array: [${cubes}]`);
  298. // multiply table
  299. // let tableLen = 11;
  300. // const table = [];
  301. // for (let i = 0; i < tableLen; i++) {
  302. // table.push([]);
  303. // for (let j = 0; j < tableLen; j++) {
  304. // table[i][j] = i * j;
  305. // }
  306. // }
  307. // console.log(table);
  308. // matrix to html table
  309. // let str = "<table border='1'>";
  310. // for (let i = 0; i < tableLen; i++) {
  311. // str += "<tr>";
  312. // for (let j = 0; j < tableLen; j++) {
  313. // str += "<td>";
  314. // str += table[i][j];
  315. // str += "</td>";
  316. // }
  317. // str += "</tr>";
  318. // }
  319. // str += "</table>";
  320. // document.write(str);
  321. // Задание на синий пояс: Треугольник
  322. // const rectLen = 11;
  323. // let flag = 1;
  324. // let rect = "";
  325. // for (let i = 0; i < rectLen / 2; i++) {
  326. // for (let j = 0; j < rectLen / 4 - 2; j++) {
  327. // rect += ".".repeat((rectLen - flag) / 2);
  328. // rect += "#".repeat(flag);
  329. // rect += ".".repeat((rectLen - flag) / 2);
  330. // rect += "\n";
  331. // }
  332. // flag += 2;
  333. // }
  334. // console.log(rect);