index.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. // persons3()
  2. function persons3() {
  3. let a = {
  4. name: 'Vasya',
  5. surname: 'Pupkin',
  6. }
  7. let b = {
  8. name: 'Petya',
  9. surname: 'Petrov',
  10. }
  11. let c = {
  12. name: 'Ivan',
  13. surname: 'Ivanov',
  14. }
  15. }
  16. // differentFields()
  17. function differentFields() {
  18. let a = {
  19. name: 'Vasya',
  20. surname: 'Pupkin',
  21. age: 25,
  22. fathername: 'Pupkovich',
  23. }
  24. let b = {
  25. name: 'Petya',
  26. surname: 'Petrov',
  27. fathername: 'Petrovich',
  28. sex: true,
  29. }
  30. let c = {
  31. name: 'Ivan',
  32. surname: 'Ivanov',
  33. age: 80,
  34. sex: false,
  35. }
  36. }
  37. // fieldsCheck()
  38. function fieldsCheck() {
  39. let a = {
  40. name: 'Vasya',
  41. surname: 'Pupkin',
  42. age: 25,
  43. fathername: 'Pupkovich',
  44. }
  45. let b = {
  46. name: 'Petya',
  47. surname: 'Petrov',
  48. fathername: 'Petrovich',
  49. sex: true,
  50. }
  51. let c = {
  52. name: 'Ivan',
  53. surname: 'Ivanov',
  54. age: 80,
  55. sex: false,
  56. }
  57. let obj = b
  58. if ('age' in obj) {
  59. alert(`age: ${obj.age}`)
  60. }
  61. if ('fathername' in obj) {
  62. alert(`fathername: ${obj.fathername}`)
  63. }
  64. if ('sex' in obj) {
  65. alert(`sex: ${obj.sex}`)
  66. }
  67. }
  68. // arrayOfPersons()
  69. function arrayOfPersons() {
  70. let a = {
  71. name: 'Vasya',
  72. surname: 'Pupkin',
  73. age: 25,
  74. fathername: 'Pupkovich',
  75. }
  76. let b = {
  77. name: 'Petya',
  78. surname: 'Petrov',
  79. age: 30,
  80. fathername: 'Petrovich',
  81. sex: true,
  82. }
  83. let c = {
  84. name: 'Ivan',
  85. surname: 'Ivanov',
  86. age: 80,
  87. sex: false,
  88. }
  89. let persons = [{
  90. name: 'Literal',
  91. surname: 'Literalov',
  92. fathername: 'Literalovich',
  93. sex: true,
  94. },]
  95. persons.push(a, b, c, deserialize())
  96. return persons
  97. }
  98. // loopOfPersons()
  99. function loopOfPersons() {
  100. let persons = arrayOfPersons()
  101. for (const element of persons) {
  102. console.log(element)
  103. }
  104. }
  105. // loopOfNameAndSurname()
  106. function loopOfNameAndSurname() {
  107. let persons = arrayOfPersons()
  108. for (const element of persons) {
  109. console.log(`${element.name} ${element.surname}`)
  110. }
  111. }
  112. // loopOfLoopOfValues()
  113. function loopOfLoopOfValues() {
  114. let persons = arrayOfPersons()
  115. for (const element of persons) {
  116. for (let [key, value] of Object.entries(element)) {
  117. console.log(`${key}: ${value}`)
  118. }
  119. }
  120. }
  121. // fullName()
  122. function fullName() {
  123. let persons = arrayOfPersons()
  124. for (const element of persons) {
  125. element.fullName = element.name + ' ' + element.surname + ' ' + (element.fathername || '')
  126. }
  127. console.log(persons)
  128. }
  129. // serialize()
  130. function serialize() {
  131. let persons = arrayOfPersons()
  132. let json = JSON.stringify(persons)
  133. console.log(json)
  134. }
  135. // deserialize()
  136. function deserialize() {
  137. let json = JSON.stringify({
  138. "name": "Jason",
  139. "surname": "Stetham",
  140. "age": "40"
  141. })
  142. let jason = JSON.parse(json)
  143. // console.log(json)
  144. // console.log(jason)
  145. return jason
  146. }
  147. // HTML()
  148. function HTML() {
  149. let persons = arrayOfPersons()
  150. let str = "<table border='1'>"
  151. for (const element of persons) {
  152. str += `<tr><td>${element.name}</td><td>${element.surname}</td></tr>`
  153. }
  154. str += "</table>"
  155. console.log(str)
  156. document.write(str)
  157. }
  158. // HTMLOptionalFields()
  159. function HTMLOptionalFields() {
  160. let persons = arrayOfPersons()
  161. let sampleLength = 0
  162. let sampleKeys = null
  163. let str = "<table border='1'>"
  164. for (const element of persons) {
  165. if (sampleLength < Object.keys(element).length) {
  166. sampleKeys = Object.keys(element)
  167. sampleLength = sampleKeys.length
  168. }
  169. }
  170. for (const element of persons) {
  171. str += '<tr>'
  172. for (let i = 0; i < sampleLength; i++) {
  173. if (sampleKeys[i] in element) {
  174. str += `<td>${element[sampleKeys[i]]}</td>`
  175. } else {
  176. str += `<td></td>`
  177. }
  178. }
  179. str += '</tr>'
  180. }
  181. str += "</table>"
  182. console.log(str)
  183. document.write(str)
  184. }
  185. // HTMLTrColor()
  186. function HTMLTrColor() {
  187. let persons = arrayOfPersons()
  188. let sampleLength = 0
  189. let sampleKeys = null
  190. let str = "<table border='1'>"
  191. for (const element of persons) {
  192. if (sampleLength < Object.keys(element).length) {
  193. sampleKeys = Object.keys(element)
  194. sampleLength = sampleKeys.length
  195. }
  196. }
  197. let j = 0
  198. for (const element of persons) {
  199. if (j % 2 === 0) {
  200. str += '<tr style="background-color: #999999">'
  201. } else {
  202. str += '<tr>'
  203. }
  204. for (let i = 0; i < sampleLength; i++) {
  205. if (sampleKeys[i] in element) {
  206. str += `<td>${element[sampleKeys[i]]}</td>`
  207. } else {
  208. str += `<td></td>`
  209. }
  210. }
  211. str += '</tr>'
  212. j++
  213. }
  214. str += "</table>"
  215. document.write(str)
  216. }
  217. // HTMLThOptional()
  218. function HTMLThOptional() {
  219. let persons = arrayOfPersons()
  220. let sampleLength = 0
  221. let sampleKeys = null
  222. let str = "<table border='1'>"
  223. for (const element of persons) {
  224. if (sampleLength < Object.keys(element).length) {
  225. sampleKeys = Object.keys(element)
  226. sampleLength = sampleKeys.length
  227. }
  228. }
  229. let j = 0
  230. for (let n = 0; n < persons.length; n++) {
  231. let element = persons[n]
  232. if (n === 0) {
  233. str += '<tr>'
  234. for (let i = 0; i < sampleLength; i++) {
  235. str += `<th>${sampleKeys[i]}</th>`
  236. }
  237. str += '</tr>'
  238. }
  239. if (j % 2 === 0) {
  240. str += '<tr style="background-color: #999999">'
  241. } else {
  242. str += '<tr>'
  243. }
  244. for (let i = 0; i < sampleLength; i++) {
  245. if (sampleKeys[i] in element) {
  246. str += `<td>${element[sampleKeys[i]]}</td>`
  247. } else {
  248. str += `<td></td>`
  249. }
  250. }
  251. str += '</tr>'
  252. j++
  253. }
  254. str += "</table>"
  255. document.write(str)
  256. }
  257. HTMLConstructor()
  258. function HTMLConstructor() {
  259. let body = {
  260. tagName: 'body',
  261. attrs: {},
  262. children: [
  263. { tagName: 'div',
  264. attrs: {},
  265. children: [
  266. { tagName: 'span',
  267. attrs: {},
  268. children: 'Enter a data please'
  269. },
  270. { tagName: 'br',
  271. attrs: {}
  272. },
  273. { tagName: 'input',
  274. attrs: {
  275. type: 'text',
  276. id: 'name'
  277. }
  278. },
  279. { tagName: 'input',
  280. attrs: {
  281. type: 'text',
  282. id: 'surname'
  283. }
  284. }
  285. ]
  286. },
  287. { tagName: 'div',
  288. attrs: {},
  289. children: [
  290. { tagName: 'button',
  291. attrs: {
  292. id: 'ok'
  293. },
  294. children: 'OK'
  295. },
  296. { tagName: 'button',
  297. attrs: {
  298. id: 'cansel'
  299. },
  300. children: 'Cancel'
  301. }
  302. ]
  303. }
  304. ]
  305. }
  306. // если у тега нет детей, то считется, что он одиночный
  307. let str = ''
  308. str += `<${body.tagName}`
  309. if (body.attrs) {
  310. for (let [key, value] of Object.entries(body.attrs)) {
  311. str += ` ${key}="${value}"`
  312. }
  313. }
  314. if (body.children) {
  315. str += `>`
  316. if (typeof body.children === 'object') {
  317. for (let obj of body.children) {
  318. str += `<${obj.tagName}`
  319. if (obj.attrs) {
  320. for (let [key, value] of Object.entries(obj.attrs)) {
  321. str += ` ${key}="${value}"`
  322. }
  323. }
  324. if (obj.children) {
  325. str += `>`
  326. if (typeof obj.children === 'object') {
  327. for (let obj2 of obj.children) {
  328. str += `<${obj2.tagName}`
  329. if (obj2.attrs) {
  330. for (let [key2, value2] of Object.entries(obj2.attrs)) {
  331. str += ` ${key2}="${value2}"`
  332. }
  333. }
  334. if (obj2.children) {
  335. str += `>`
  336. if (typeof obj2.children === 'object') {
  337. } else {
  338. str += `${obj2.children}`
  339. }
  340. str += `</${obj2.tagName}>`
  341. } else {
  342. str += `/>`
  343. }
  344. }
  345. } else {
  346. str += `${obj.children}`
  347. }
  348. str += `</${obj.tagName}>`
  349. } else {
  350. str += `/>`
  351. }
  352. }
  353. } else {
  354. str += `${body.children}`
  355. }
  356. str += `</${body.tagName}>`
  357. } else {
  358. str += `/>`
  359. }
  360. console.log(str)
  361. document.write(str)
  362. }
  363. // destructArray()
  364. function destructArray() {
  365. let arr = [1,2,3,4,5, "a", "b", "c"]
  366. let [odd1, even1, odd2, even2, odd3, ...letters] = arr
  367. console.log(odd1, even1, odd2, even2, odd3, letters)
  368. }
  369. // destructString()
  370. function destructString() {
  371. let arr = [1, "abc"]
  372. let [number, [s1, s2, s3]] = arr
  373. console.log(number, s1, s2, s3)
  374. }
  375. // destruct2()
  376. function destruct2() {
  377. let obj = {
  378. name: 'Ivan',
  379. surname: 'Petrov',
  380. children: [{name: 'Maria'}, {name: 'Nikolay'}]
  381. }
  382. let {children: [{name: name1}, {name: name2}]} = obj
  383. console.log(name1, name2)
  384. }
  385. // destruct3()
  386. function destruct3() {
  387. let arr = [1,2,3,4,5,6,7,10]
  388. let {0:a, 1:b, length:length} = arr
  389. console.log(a, b, length)
  390. }
  391. // fortuneTellerObj()
  392. function fortuneTellerObj() {
  393. let history = [1,1,1,1]
  394. let historyStr = '1111'
  395. let predictArray = {}
  396. let loop = true;
  397. while (loop) {
  398. let compOutput = null
  399. if (historyStr in predictArray) {
  400. compOutput = predictArray[historyStr]
  401. console.log(compOutput)
  402. } else {
  403. compOutput = Math.floor(Math.random()*2)
  404. console.log(compOutput)
  405. }
  406. let userInput = +confirm('Нажмите ОК, если выбираете 1\nНажмите Отмена, если выбираете 0')
  407. // console.log(userInput)
  408. predictArray[historyStr] = userInput
  409. // console.log(predictArray)
  410. history.push(userInput)
  411. history.shift()
  412. historyStr = history.join('')
  413. // console.log(historyStr)
  414. loop = confirm('Еще?')
  415. }
  416. }