//3 persons let a = { 'Name': 'Sergei', 'surname': 'Levshnia', 'fathername': 'Sergeevich' } console.log(a['Name'], a.surname) let b = { 'Name': 'Thomas', surname: 'Anderson' } console.log(b.Name, b.surname) let c = { Name: 'Sylvester', surname: 'Stallone' } console.log(c['Name'], c['surname']) //different fields a.age = 20 b.nickname = 'Neo' c.movies = ['Rocky', 'Rambo: First Blood', 'Cobra', 'Over the Top'] console.log(a, b, c) //fields Check function fieldCheck(obj, string) { if(string in obj) { alert(obj[string]) } } // console.log(fieldCheck(a, 'age')) // console.log(fieldCheck(b, 'awoken')) // console.log(fieldCheck(c, 'movies')) //array of persons let persons = [] persons.push(a, b, c) persons[persons.length] = { Name: 'Billy', surname: 'Joebob' } //loop of persons console.log('------------------------') console.log('loop of persons:') for(i in persons) { console.log(persons[i]) } //loop of name and surname console.log('------------------------') console.log('loop of name and surname:') for(i in persons) { console.log(persons[i].Name, persons[i].surname) } //loop of loop of values console.log('------------------------') console.log('loop of loop of values:') for(let i in persons) { for(let j in persons[i]) { console.log(persons[i][j]) } console.log('!-----------------------') } //fullName for(let i in persons) { persons[i].fullName = `${persons[i].surname} ${persons[i].Name}` + (persons[i].fathername? ` ${persons[i].fathername}` : '') } //serialize let serialize = JSON.stringify(persons) console.log(serialize) //deserialize persons.push(JSON.parse(serialize)[0]) console.log(persons) //HTML let str = "" for (let i = 0; i < persons.length; i++) { str += `` } str += "
${persons[i].Name}${persons[i].surname}
" document.write(str) //Html optional fields let htmlOptional = '

HTML optional fields

' let tableHeaders = Object.keys(persons[0]) htmlOptional += '' for(let i = 0; i < tableHeaders.length; i++) { for(let j in persons[i]) { if(!tableHeaders.includes(j)) { tableHeaders.push(j) } } htmlOptional += `` } htmlOptional += '' for(let i = 0; i < persons.length; i++) { //HTML tr color htmlOptional += i % 2 === 0? '' : '' //HTML th optional for(let cols = 0; cols < tableHeaders.length; cols++) { htmlOptional += persons[i][tableHeaders[cols]]? `` : `` } htmlOptional += '' } htmlOptional += '
${tableHeaders[i]}
${persons[i][tableHeaders[cols]]}X
' document.write(htmlOptional)