//3 persons //different fields //fields check let a = { personName: "Vasya", surname: "Pupkin", age: 11 }; let b = { personName: "Ivan", surname: "Ivanov", secondName: "Ivanovich" }; let c = { personName: "Kiril", surname: "Kirilovich", sex: "male" } let arrayOptionalFields = ["age", "secondName", "sex"]; let getOptionalFields = function(arr) { for(let item of arrayOptionalFields) { if(item in arr) { alert(arr[item]); } } } getOptionalFields(a); getOptionalFields(b); getOptionalFields(c); //array of persons //loop of persons //loop of name and surname let persons = [{ personName: "Vlad", surname: "Vladlen", relationship: false }]; persons.push(a, b, c); for(let person of persons) { console.log(person.name); console.log(person.surname); } //loop of loop of values for(let person of persons) { let keysArr = Object.keys(person); for(let i = 0; i < keysArr.length; i++) { console.log(person[keysArr[i]]); } } //fullName for(let person of persons) { person["fullName"] = `${person.personName} ${person.surname}`; } //serialize let personsJSON = JSON.stringify(persons); //deserialize let hodorPerson = { personName: "Hodor", surname: "Hodor", favoritWord: "Hodor" } let hodorPersonJSON = JSON.stringify(hodorPerson); persons.push(JSON.parse(hodorPersonJSON)); //HTML //HTML optional fields //HTML tr color //HTML th optional let allPersonsKey = []; //В этой переменной я буду хранить все ключи которые есть в объектах person let uniquePersonsKey = []; //Тут хранятся все уникальные ключи let counter = 0; //Это переменная быдет служить проверкой на четность и нечетность, с помощью этой проверки я буду красить строки через один for(let person of persons) { //Весь этот цыкл отвечает за создание массива с уникальными ключами let personKeyArr = Object.keys(person); for(let item of personKeyArr) { allPersonsKey.push(item); } uniquePersonsKey = [...new Set(allPersonsKey)]; } let str = "
${uniquePersonsKey[i]} | `; } str += "
---|
${person[uniquePersonsKey[i]]} | `; } str += "