//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 += `${persons[i].Name} | ${persons[i].surname} |
`
}
str += "
"
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 += `${tableHeaders[i]} | `
}
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]]? `${persons[i][tableHeaders[cols]]} | ` :
`X | `
}
htmlOptional += '
'
}
htmlOptional += '
'
document.write(htmlOptional)