script.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //3 persons
  2. let a = {
  3. 'Name': 'Sergei',
  4. 'surname': 'Levshnia',
  5. 'fathername': 'Sergeevich'
  6. }
  7. console.log(a['Name'], a.surname)
  8. let b = {
  9. 'Name': 'Thomas',
  10. surname: 'Anderson'
  11. }
  12. console.log(b.Name, b.surname)
  13. let c = {
  14. Name: 'Sylvester',
  15. surname: 'Stallone'
  16. }
  17. console.log(c['Name'], c['surname'])
  18. //different fields
  19. a.age = 20
  20. b.nickname = 'Neo'
  21. c.movies = ['Rocky', 'Rambo: First Blood', 'Cobra', 'Over the Top']
  22. console.log(a, b, c)
  23. //fields Check
  24. function fieldCheck(obj, string) {
  25. if(string in obj) {
  26. alert(obj[string])
  27. }
  28. }
  29. // console.log(fieldCheck(a, 'age'))
  30. // console.log(fieldCheck(b, 'awoken'))
  31. // console.log(fieldCheck(c, 'movies'))
  32. //array of persons
  33. let persons = []
  34. persons.push(a, b, c)
  35. persons[persons.length] = {
  36. Name: 'Billy',
  37. surname: 'Joebob'
  38. }
  39. //loop of persons
  40. console.log('------------------------')
  41. console.log('loop of persons:')
  42. for(i in persons) {
  43. console.log(persons[i])
  44. }
  45. //loop of name and surname
  46. console.log('------------------------')
  47. console.log('loop of name and surname:')
  48. for(i in persons) {
  49. console.log(persons[i].Name, persons[i].surname)
  50. }
  51. //loop of loop of values
  52. console.log('------------------------')
  53. console.log('loop of loop of values:')
  54. for(let i in persons) {
  55. for(let j in persons[i]) {
  56. console.log(persons[i][j])
  57. }
  58. console.log('!-----------------------')
  59. }
  60. //fullName
  61. for(let i in persons) {
  62. persons[i].fullName = `${persons[i].surname} ${persons[i].Name}` + (persons[i].fathername? ` ${persons[i].fathername}` : '')
  63. }
  64. //serialize
  65. let serialize = JSON.stringify(persons)
  66. console.log(serialize)
  67. //deserialize
  68. persons.push(JSON.parse(serialize)[0])
  69. console.log(persons)
  70. //HTML
  71. let str = "<table border='1'>"
  72. for (let i = 0; i < persons.length; i++) {
  73. str += `<tr><td>${persons[i].Name}</td><td>${persons[i].surname}</td></tr>`
  74. }
  75. str += "</table>"
  76. document.write(str)
  77. //Html optional fields
  78. let htmlOptional = '<h2>HTML optional fields</h2><table border="1">'
  79. let tableHeaders = Object.keys(persons[0])
  80. htmlOptional += '<tr style="background-color: black; color: white;">'
  81. for(let i = 0; i < tableHeaders.length; i++) {
  82. for(let j in persons[i]) {
  83. if(!tableHeaders.includes(j)) {
  84. tableHeaders.push(j)
  85. }
  86. }
  87. htmlOptional += `<th>${tableHeaders[i]}</th>`
  88. }
  89. htmlOptional += '</tr>'
  90. for(let i = 0; i < persons.length; i++) {
  91. //HTML tr color
  92. htmlOptional += i % 2 === 0? '<tr style="background-color: firebrick; color: white">' : '<tr>'
  93. //HTML th optional
  94. for(let cols = 0; cols < tableHeaders.length; cols++) {
  95. htmlOptional += persons[i][tableHeaders[cols]]? `<td style="text-align:center">${persons[i][tableHeaders[cols]]}</td>` :
  96. `<td style="text-align:center; color: black;">X</td>`
  97. }
  98. htmlOptional += '</tr>'
  99. }
  100. htmlOptional += '</table>'
  101. document.write(htmlOptional)
  102. // blue belt
  103. class Markup {
  104. constructor(tagName, [...nestedTags]=[],{...attrs}={},text='') {
  105. this.tagName = tagName,
  106. this.nestedTags = nestedTags
  107. this.attrs = attrs
  108. this.text = text
  109. }
  110. }
  111. //let md = new Markup('body', [[123],[123]], {a:228, b:1337}, 'sometext')
  112. let md = new Markup('body', [new Markup('h1',[],{},'header text')],{style:'background-color: red'}, '')
  113. let md2 = new Markup('body', [new Markup('h2')],{style:'background-color: red'}, '')
  114. let md3 = new Markup('table', [new Markup('tr', [new Markup('td',[],{},'sometext'),new Markup('td',[],{},'sometext') ])])
  115. console.dir(md3)