index.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. // html tree
  2. // <body>
  3. // <div>
  4. // <span>Enter a data please:</span><br/>
  5. // <input type='text' id='name'>
  6. // <input type='text' id='surname'>
  7. // </div>
  8. // <div>
  9. // <button id='ok'>OK</button>
  10. // <button id='cancel'>Cancel</button>
  11. // </div>
  12. // </body>
  13. // Сделайте декларативную JSON-структуру для тэгов выше, в которой:
  14. // каждый тэг будет объектом
  15. // имя тэга будет полем tagName
  16. // вложенные тэги будут в поле subTags
  17. // текст в тэге будет в поле text
  18. // набор аттрибутов тэга будет в поле attrs.
  19. // Выведите значения текста во второй кнопке, используя . и [].
  20. // Выведите значение атрибута id во втором input, используя . и [].
  21. // let body={
  22. // tagName:'body',
  23. // paired:true,
  24. // subTags:[
  25. // {tagName:'div',
  26. // paired:true,
  27. // subTags:[
  28. // {
  29. // tagName:'br',
  30. // paired:false,
  31. // },
  32. // {
  33. // tagName:'span',
  34. // paired:true,
  35. // content:"Enter a data please:",
  36. // },
  37. // {
  38. // tagName:'input',
  39. // paired:false,
  40. // attrs:{
  41. // id:'name',
  42. // type:'text',
  43. // }
  44. // },
  45. // {
  46. // tagName:'input',
  47. // paired:false,
  48. // attrs:{
  49. // id:'surname',
  50. // type:'text',
  51. // }
  52. // },
  53. // ]
  54. // },
  55. // {
  56. // tagName:'div',
  57. // paired:true,
  58. // subTags:[
  59. // {
  60. // tagName:'button',
  61. // content:"Ok",
  62. // paired:true,
  63. // attrs:{
  64. // id:'ok',
  65. // }
  66. // },
  67. // {
  68. // tagName:'button',
  69. // content:"Cancel",
  70. // paired:true,
  71. // attrs:{
  72. // id:'cancel',
  73. // }
  74. // },
  75. // ]
  76. // }
  77. // ]
  78. // }
  79. // alert(body.subTags[1].subTags[1].content)
  80. // alert(body.subTags[0].subTags[3].attrs.id)
  81. // declarative fields
  82. // var notebook = {
  83. // brand: prompt('enter brand for ex. HP'),
  84. // type: prompt('enter type for ex. 440 g4'),
  85. // model: prompt('enter model for ex. Y7Z75EA'),
  86. // ram: +prompt('enter ram im gb'),
  87. // size: +prompt('enter screen size in "'),
  88. // weight: +prompt('enter weight im kg'),
  89. // resolution: {
  90. // width: +prompt('enter resolution'),
  91. // height: +prompt('enter resolution'),
  92. // },
  93. // };
  94. // var phone = {
  95. // brand: prompt('enter phone brand'),
  96. // model: prompt('enter phone model'),
  97. // ram: +prompt('enter ram in gb'),
  98. // color: prompt('enter color'),
  99. // };
  100. // var person = {
  101. // name: prompt('enter name'),
  102. // surname: prompt('enter surname'),
  103. // married: confirm('married?'),
  104. // }
  105. // // object links
  106. // var notebook = {
  107. // brand: prompt('enter brand for ex. HP'),
  108. // type: prompt('enter type for ex. 440 g4'),
  109. // model: prompt('enter model for ex. Y7Z75EA'),
  110. // ram: +prompt('enter ram im gb'),
  111. // size: +prompt('enter screen size in "'),
  112. // weight: +prompt('enter weight im kg'),
  113. // resolution: {
  114. // width: +prompt('enter resolution'),
  115. // height: +prompt('enter resolution'),
  116. // },
  117. // };
  118. // var phone = {
  119. // brand: prompt('enter phone brand'),
  120. // model: prompt('enter phone model'),
  121. // ram: +prompt('enter ram in gb'),
  122. // color: prompt('enter color'),
  123. // };
  124. // var person = {
  125. // name: prompt('enter name'),
  126. // surname: prompt('enter surname'),
  127. // married: confirm('married?'),
  128. // }
  129. // person.smartphone = phone;
  130. // person.laptop = notebook;
  131. // notebook.owner = person;
  132. // phone.owner = person;
  133. // // imperative array fill 3
  134. // let arrayfill = []
  135. // arrayfill[0] = prompt('enter something')
  136. // arrayfill[1] = prompt('enter something')
  137. // arrayfill[2] = prompt('enter something')
  138. // // // while confirm
  139. // // Сделайте цикл с confirm, который продолжается по Отмена и заканчивается по ОК.
  140. // do {
  141. // var whileConfirm = confirm("yes-no?");
  142. // } while (whileConfirm === false);
  143. // // array fill
  144. // // Создайте пустой массив и добавляйте в него элементы, пока пользователь не нажмет Отмена в очередном prompt. Используйте push для удобства: push
  145. // let b = []
  146. // let a = '';
  147. // do {
  148. // a = prompt('enter');
  149. // b.push(a);
  150. // } while (a != null)
  151. // // array fill nopush
  152. // // Сделайте предыдущее задание, не используя push, а обращаясь к элементам по индексу.
  153. // let b = []
  154. // let a = '';
  155. // let i = 0;
  156. // do {
  157. // a = prompt('enter');
  158. // b[i++] = a
  159. // } while (a != null)
  160. // alert (b);
  161. // infinite probability
  162. // Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9. Код должен подсчитывать количество итераций и вывести это число с помощью alert.
  163. // let i = 0;
  164. // while (true) {
  165. // let inf = Math.random();
  166. // i++;
  167. // if (inf > 0.9) {
  168. // alert('Количество итераций: '+i);
  169. // break;
  170. // }
  171. // }
  172. // empty loop
  173. // // Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла.
  174. // do {
  175. // var whileConfirm = prompt("ok- STOP cancel - GO ");
  176. // } while (whileConfirm === null);
  177. // progression sum
  178. // Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for.
  179. // let x = 0;
  180. // let n = prompt('введи N')
  181. // for (let i = 1; i < n; i+=3){
  182. // // x += i;
  183. // x = (x+i)*n
  184. // }
  185. // alert("прогрессия равна: "+x);
  186. // chess one line
  187. // Сформировать строку " # # # # # " с помощью цикла for. Длина строки может быть четной и нечетной, и указывается в одном месте в коде.
  188. // var chess = "";
  189. // for(var a = 0; a < 12; a++){
  190. // chess += (a % 2) ? " " : "#";
  191. // }
  192. // alert(chess);
  193. // numbers
  194. // Сформировать строку c помощью вложенных циклов. Для перевода строки используйте \n.
  195. // let str = "";
  196. // for(var i = 0; i < 10; i++){
  197. // for(var a = 0; a < 10; a++){
  198. // str += a;
  199. // }
  200. // str += "\n";
  201. // }
  202. // alert(str);
  203. // // Сформируйте строку с шахматной доской из вложенных циклов. Для перевода строки используйте \n. Код должен поддерживать легкое изменение размеров доски.
  204. // var chessboard = "";
  205. // for(var i = 0; i < 10; i++){
  206. // for(var a = 0; a < 12; a++){
  207. // chessboard += (a % 2) == (i % 2) ? "." : "#";
  208. // }
  209. // chessboard += "\n";
  210. // }
  211. // alert(chessboard);
  212. // Сформируйте массив из N элементов, содержащий в себе кубы индексов, т. е:
  213. // [0,1,8,27,64...]
  214. // let arr=[];
  215. // let i = 0
  216. // let n=prompt('Введи количество элементов')
  217. // for(; i<n ; i++){
  218. // arr.push(i**3)
  219. // }
  220. // alert('Кубы индексов '+n + ' элементов: '+ arr)
  221. // multiply table
  222. // C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных массивов используйте
  223. // arr[i] = [] //в i-тый элемент массива заносится новый пустой массив
  224. // arr[5][6] должен быть равен, соответственно, 30, arr[7][2] == 14 и так далее.
  225. let arr = [];
  226. for(let i = 1; i < 10; i++){
  227. arr[i] = [];
  228. for(let j = 1; j <10; j++){
  229. arr[i][j] = i * j;
  230. }
  231. }
  232. // matrix to html table
  233. // Сделайте вложенный цикл, который формирует HTML-таблицу в переменной строкового типа из любого двумерного массива. Т. е. если в нём использовать результат работы предыдущего задания, то получится таблица умножения в HTML (Таблица Пифагора)
  234. document.write ('<table align="center" bgcolor="fdfdfd" ');
  235. document.write ('cellspacing="0" cellpadding="4" ');
  236. document.write ('border="1" >');
  237. let td, content;
  238. for (let i = 0; i < 10; i++)
  239. {
  240. document.write ('<tr>');
  241. for (let j = 0; j < 10; j++)
  242. {
  243. if (i == 0 || j == 0)
  244. {
  245. td = '<td >';
  246. if (i == 0) content = '<b>' + j + '</b>';
  247. else if (j == 0) content = '<b>' + i + '</b>';
  248. }
  249. else
  250. {
  251. td = '<td >';
  252. if (i == j) content = '<b>' + i * j + '</b>';
  253. else content = i * j;
  254. }
  255. document.write (td + content + '</td>');
  256. }
  257. document.write ('</tr>');
  258. }
  259. document.write ('<table>');