index.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. // html tree
  2. let body = {
  3. tagName: 'body',
  4. subTags: [
  5. {
  6. tagName: 'div',
  7. subTags: [
  8. {
  9. tagName: 'span',
  10. text: 'Enter a data please:',
  11. subTags: [
  12. {
  13. tagName: 'br',
  14. },
  15. {
  16. tagName: 'input',
  17. attrs: ['type', 'id', 'text', 'name',]
  18. },
  19. {
  20. tagName: 'input',
  21. attrs: ['type', 'id', 'text', 'name',]
  22. }
  23. ]
  24. },
  25. {
  26. tagName: 'div',
  27. subTags: [
  28. {
  29. tagName: 'button',
  30. attrs: ['id', 'ok'],
  31. text: 'OK',
  32. },
  33. {
  34. tagName: 'button',
  35. attrs: ['id', 'cancel'],
  36. text: 'Cancel',
  37. },
  38. ]
  39. }
  40. ]
  41. }
  42. ]
  43. }
  44. // declarative fields
  45. var notebook = {
  46. brand: prompt("Enter brand notebook "),
  47. type: prompt("Enter type notebook "),
  48. model: prompt("Enter model notebook "),
  49. ram: +prompt("Enter brand notebook "),
  50. size: prompt("Enter size notebook "),
  51. weight: +prompt("Enter weight notebook "),
  52. resolution: {
  53. width: +prompt("Enter width notebook "),
  54. height: +prompt("Enter height notebook "),
  55. },
  56. };
  57. var phone = {
  58. brand: prompt("Enter brand phone "),
  59. model: prompt("Enter model phone "),
  60. ram: +prompt("Enter ram phone "),
  61. color: prompt("Enter color phone "),
  62. };
  63. var person = {
  64. name: prompt("Enter a name"),
  65. surname: prompt("Enter a surname"),
  66. married: confirm("married"),
  67. }
  68. // object links
  69. person.smartphone = phone;
  70. person.laptop = notebook;
  71. phone.owner = person;
  72. notebook.owner = person;
  73. person.smartphone.owner.laptop.owner.smartphone == person.smartphone
  74. // true
  75. // imperative array fill 3
  76. let arr = []
  77. for (let i = 0; i < 3; i++) {
  78. arr[i] = prompt("")
  79. }
  80. // while confirm
  81. let k
  82. for (i = 0; ; i++) {
  83. k = confirm("")
  84. if (k == false) {
  85. } else if (k == true) {
  86. break;
  87. }
  88. }
  89. // array fill
  90. // Создайте пустой массив и добавляйте в него элементы, пока пользователь не нажмет Отмена в очередном prompt. Используйте push для удобства: push
  91. // let arr =[]
  92. // for(i=0; ;i++){
  93. // k = arr.push(prompt(""));
  94. // if(k==String){
  95. // }else if(k==null){
  96. // break;
  97. // }
  98. // }
  99. // infinite probability
  100. // infinite probability
  101. // Создайте бесконечный цикл, который прерывается с помощью конструкции break, когда Math.random() > 0.9. Код должен подсчитывать количество итераций и вывести это число с помощью alert.
  102. let k = 0;
  103. let m = 0;
  104. for (let i = 0; ; i++) {
  105. k++
  106. m = Math.random();
  107. if (m > 0.9) {
  108. break;
  109. }
  110. }
  111. alert(k)
  112. // empty loop
  113. // Сделайте цикл с prompt, который прерывается по нажатию OK и продолжается по нажатию "Отмена" c пустым телом цикла.
  114. while (prompt('ok') == null) { };
  115. // progression sum
  116. // Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл for.
  117. let n = prompt("")
  118. for (i = 1; i < n; i = i + 3) {
  119. console.log(i)
  120. }
  121. // numbers
  122. // Сформировать строку c помощью вложенных циклов. Для перевода строки
  123. let stringMass = "";
  124. for (let i = 0; i < 10; i++) {
  125. let string = "";
  126. for (let j = 0; j < 10; j++) {
  127. string += j
  128. }
  129. stringMass += string + "\n"
  130. }
  131. console.log(stringMass)
  132. // chess
  133. let string = '';
  134. let n = 12;
  135. for (let i = 0; i < n * n + n; i++) {
  136. if (i === 0 || i % 2 === 0) {
  137. string += '.'
  138. } else {
  139. string += '#';
  140. }
  141. if ((string.length + 1) % (n + 1) === 0) {
  142. i += 1;
  143. }
  144. string += '\n';
  145. }
  146. console.log(string)
  147. // cubes
  148. // Сформируйте массив из N элементов, содержащий в себе кубы индексов, т. е:[0,1,8,27,64...]
  149. let array = [];
  150. let arraystring = "";
  151. array.length = +prompt("Enter the length of the array ");
  152. for(let i = 0; i < array.length; i++) {
  153. array[i] = Math.pow(i, 3)
  154. arraystring += array[i] + ", "
  155. }
  156. alert(arraystring)
  157. // multiply table
  158. // C помощью вложенного цикла сформируйте массив массивов "таблица умножения". Для инициализации вложенных массивов используйте
  159. // arr[i] = [] //в i-тый элемент массива заносится новый пустой массив
  160. // arr[5][6] должен быть равен, соответственно, 30, arr[7][2] == 14 и так далее.
  161. for (let i = 0; i <= 10; i++) {
  162. arr[i] = [];
  163. for (let j = 0; j <= 10; j++) {
  164. arr[i][j] = i * j;
  165. }
  166. }
  167. console.log(arr);
  168. alert(arr[5][6])
  169. // matrix to html table
  170. // Сделайте вложенный цикл, который формирует HTML-таблицу в переменной строкового типа из любого двумерного массива. Т. е. если в нём использовать результат работы предыдущего задания, то получится таблица умножения в HTML (Таблица Пифагора)
  171. // НЕ ПОЛУЧИЛОСЬ
  172. let arr =[];
  173. for (let i = 0; i <= 10; i++) {
  174. var div = document.createElement("div");
  175. arr[i] = [];
  176. for (let j = 0; j <= 10; j++) {
  177. var span = document.createElement("span");
  178. span.style.display = "inline-block"
  179. span.style.width = "25px"
  180. arr[i][j] = i * j;
  181. span.innerHTML = arr[i][j];
  182. div.appendChild(span);
  183. }
  184. document.body.append(div);
  185. }
  186. console.log(arr);