main.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. //3 persons
  2. let a = {
  3. name: 'Layne',
  4. surname: 'Staley',
  5. }
  6. let b = {
  7. name: 'Varg',
  8. surname: 'Vikernes'
  9. }
  10. let c = {
  11. name: 'Alexi',
  12. surname: 'Laiho'
  13. }
  14. //different fields
  15. a.sex = 'male'
  16. a.fathername = 'Phil'
  17. b.project = 'Burzum'
  18. c.age = 41
  19. c.project = 'Children of Bodom'
  20. //fields check
  21. // let arr = [a, b, c]
  22. // for (let i = 0; i < arr.length; i++) {
  23. // if ('sex' in arr[i]) {
  24. // alert(arr[i].sex)
  25. // }
  26. // if ('project' in arr[i]) {
  27. // alert(arr[i].project)
  28. // }
  29. // if ('age' in arr[i]) {
  30. // alert(arr[i].age)
  31. // }
  32. // if ('fathername' in arr[i]) {
  33. // alert(arr[i].fathername)
  34. // }
  35. // }
  36. //array of persons
  37. let persons = [a, b, c, {name: 'James', surname: 'Hetfield', age: 58, fathername: 'Virgil'}]
  38. //loop of persons
  39. // for (let i = 0; i < persons.length; i++) {
  40. // console.log(persons[i])
  41. // }
  42. //loop of name and surname
  43. // for (let i = 0; i < persons.length; i++) {
  44. // console.log(persons[i].name, persons[i].surname)
  45. // }
  46. //loop of loop of values
  47. // for (let i = 0; i < persons.length; i++) {
  48. // for (let key in persons[i]) {
  49. // console.log(persons[i][key])
  50. // }
  51. // }
  52. // or
  53. // for (let i = 0; i < persons.length; i++) {
  54. // for (let [key, value] of Object.entries(persons[i])) {
  55. // console.log(value)
  56. // }
  57. // }
  58. //fullName
  59. for (let i = 0; i < persons.length; i++) {
  60. if ('fathername' in persons[i]) {
  61. persons[i].fullName = persons[i].name + ' ' + persons[i].surname
  62. }
  63. }
  64. //serialize
  65. JSON.stringify(persons)
  66. //deserialize
  67. persons[persons.length] = JSON.parse('{"name": "Peeter", "surname": "Steele", "project": "Type O Negative"}')
  68. //HTML
  69. // let str = "<table border='1'>"
  70. // for (let i = 0; i < persons.length; i++) {
  71. // if (i === 0) {
  72. // str += `<tr><th></th><th>Name</th><th>Surname</th></tr>`
  73. // } else {
  74. // str += `<tr><td>${i}</td><td>${persons[i].name}</td><td>${persons[i].surname}</td></tr>`
  75. // }
  76. // }
  77. // str += "</table>"
  78. // console.log(str)
  79. // document.write(str)
  80. //HTML optional fields
  81. // let columns = {}
  82. // for (let i = 0; i < persons.length; i++) {
  83. // Object.assign(columns, persons[i])
  84. // }
  85. // let str = '<table border="1">'
  86. // for (let i = 0; i <= persons.length; i++) {
  87. // str += '<tr>'
  88. // if (i === 0) {
  89. // str += '<td></td>'
  90. // for (let [key, value] of Object.entries(columns)) {
  91. // str += `<td> ${key} </td>`
  92. // }
  93. // } else {
  94. // str += `<td>${i}</td>`
  95. // for (let [key, value] of Object.entries(columns)) {
  96. // if (key in persons[i-1]) {
  97. // str += `<td> ${persons[i-1][key]} </td>`
  98. // } else {
  99. // str += `<td> </td>`
  100. // }
  101. // }
  102. // }
  103. // str += '</tr>'
  104. // }
  105. // str += '</table>'
  106. // document.write(str)
  107. //HTML tr color
  108. // let columns = {}
  109. // for (let i = 0; i < persons.length; i++) {
  110. // Object.assign(columns, persons[i])
  111. // }
  112. // let str = '<table border="1">'
  113. // for (let i = 0; i <= persons.length; i++) {
  114. // if (i % 2) {
  115. // str += '<tr>'
  116. // } else {
  117. // str += '<tr style="background-color: rgba(255, 0, 0, 0.2)">'
  118. // }
  119. // if (i === 0) {
  120. // str += '<td></td>'
  121. // for (let [key, value] of Object.entries(columns)) {
  122. // str += `<td> ${key} </td>`
  123. // }
  124. // } else {
  125. // str += `<td>${i}</td>`
  126. // for (let [key, value] of Object.entries(columns)) {
  127. // if (key in persons[i-1]) {
  128. // str += `<td> ${persons[i-1][key]} </td>`
  129. // } else {
  130. // str += `<td> </td>`
  131. // }
  132. // }
  133. // }
  134. // str += '</tr>'
  135. // }
  136. // str += '</table>'
  137. // document.write(str)
  138. //HTML th optional
  139. //Я уже случайно это сделала кажется, тут просто заменила свои td на th в нужном месте
  140. let columns = {}
  141. for (let i = 0; i < persons.length; i++) {
  142. Object.assign(columns, persons[i])
  143. }
  144. let str = '<table border="1">'
  145. for (let i = 0; i <= persons.length; i++) {
  146. if (i % 2) {
  147. str += '<tr>'
  148. } else {
  149. str += '<tr style="background-color: rgba(255, 0, 0, 0.2)">'
  150. }
  151. if (i === 0) {
  152. str += '<th></th>'
  153. for (let key of Object.keys(columns)) {
  154. str += `<th> ${key} </th>`
  155. }
  156. } else {
  157. str += `<td>${i}</td>`
  158. for (let key of Object.keys(columns)) {
  159. if (key in persons[i-1]) {
  160. str += `<td> ${persons[i-1][key]} </td>`
  161. } else {
  162. str += `<td> </td>`
  163. }
  164. }
  165. }
  166. str += '</tr>'
  167. }
  168. str += '</table>'
  169. document.write(str)
  170. //Задание на синий пояс
  171. var someTree = {
  172. tagName: "table",
  173. subTags: [
  174. {
  175. tagName: "tr",
  176. subTags: [
  177. {
  178. tagName: "td",
  179. text: "some text",
  180. },
  181. {
  182. tagName: "td",
  183. text: "some text 2",
  184. }
  185. ]
  186. }
  187. ],
  188. attrs:
  189. {
  190. border: 1,
  191. },
  192. }
  193. function tableConstructor (object) {
  194. let table = `<${object.tagName}`
  195. for (let [key, value] of Object.entries(object.attrs)) {
  196. table += ` ${key}="${value}"`
  197. }
  198. table += `>`
  199. for (let i = 0; i < object.subTags.length; i++) {
  200. table += `<${object.subTags[i].tagName}>`
  201. if ('subTags' in object.subTags[i]) {
  202. for (let j = 0; j < object.subTags[i].subTags.length; j++) {
  203. table += `<${object.subTags[i].subTags[j].tagName}>`
  204. if ('text' in object.subTags[i].subTags[j]) {
  205. table += `${object.subTags[i].subTags[j].text}`
  206. }
  207. table += `</${object.subTags[i].subTags[j].tagName}>`
  208. }
  209. }
  210. table += `</${object.subTags[i].tagName}>`
  211. }
  212. table += `</${object.tagName}>`
  213. document.write(table)
  214. }
  215. //destruct array
  216. // let arr = [1,2,3,4,5, "a", "b", "c"]
  217. // let [even1, even2] = arr.filter(element => !(element % 2))
  218. // let [odd1, odd2, odd3] = arr.filter(element => element % 2)
  219. // let oneMoreArr = arr.filter(element => !(+element))
  220. //destruct string
  221. // let arr = [1, "abc"]
  222. // let [number] = arr.filter(element => +element)
  223. // let [[s1, s2, s3]] = arr.filter(element => !(+element))
  224. //destruct 2
  225. // let obj = {
  226. // name: 'Ivan',
  227. // surname: 'Petrov',
  228. // children: [{ name: 'Maria' }, { name: 'Nikolay' }]
  229. // }
  230. // let {
  231. // children: [{name: name1}, {name: name2}]
  232. // } = obj
  233. //destruct 3
  234. // let arr = [1,2,3,4,5,6,7,10]
  235. // let {0:a, 1:b, length} = arr;
  236. //Задание на черный пояс
  237. let predictArray = {
  238. "0000": -1,
  239. "0001": -1,
  240. "0010": -1,
  241. "0100": -1,
  242. "1000": -1,
  243. "0011": -1,
  244. "0110": -1,
  245. "1100": -1,
  246. "1001": -1,
  247. "0101": -1,
  248. "1010": -1,
  249. "1110": -1,
  250. "0111": -1,
  251. "1011": -1,
  252. "1101": -1,
  253. "1111": -1,
  254. }
  255. let history = "1111"
  256. let points = 0;
  257. let counter = 0;
  258. while (true) {
  259. if (predictArray[history] === -1) {
  260. console.log('Предсказание гадалки: ' + (predictArray[history] = Math.round(Math.random())))
  261. } else {
  262. console.log('Предсказание гадалки: ' + predictArray[history])
  263. }
  264. let userNumber = prompt('Введите 0 или 1')
  265. if (userNumber === null || userNumber === '') {
  266. break
  267. }
  268. console.log('Ввод пользователя: ' + userNumber)
  269. counter++
  270. if (predictArray[history] == userNumber) {
  271. points--
  272. } else {
  273. points++
  274. }
  275. alert('Ваш счёт: ' + points)
  276. predictArray[history] = +userNumber;
  277. history = history.split('');
  278. history.shift();
  279. history.push(+userNumber);
  280. history = history.join('')
  281. }
  282. alert('Количество ходов: ' + counter + '. Ваш счёт: ' + points)