//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 = ""; //Начинаю рисовать таблицу str += ""; for(let i = 0; i < uniquePersonsKey.length; i++) { //Рисую шапку таблицы перечисляя все уникальные ключи str += ``; } str += ""; for(let person of persons) { //Отрисовка тела таблицы let backgroundColor; counter++; if(counter%2) { //Тут идет проверка, четный ход или не четный backgroundColor = "yellow"; } else { backgroundColor = "green"; } str += ``; for(let i = 0; i < uniquePersonsKey.length; i++) { str += ``; } str += ""; } str += "
${uniquePersonsKey[i]}
${person[uniquePersonsKey[i]]}
"; document.write(str); //Задание на синий пояс. var someTree = { tagName: "table", //html tag subTags: [ //вложенные тэги { tagName: "tr", subTags: [ { tagName: "td", text: "some text", }, { tagName: "td", text: "some text 2", } ] } ], attrs: { border: 1, }, } let str1 = `<${someTree.tagName}>`; for(let i = 0; i < someTree.subTags.length; i++) { str1 += `<${someTree.subTags[i].tagName}>`; for(let j = 0; j < someTree.subTags[i].subTags.length; j++) { str1 += `<${someTree.subTags[i].subTags[j].tagName}>${someTree.subTags[i].subTags[j].text}`; } str1 += ``; } str1 += ``; document.write(str1); //destruct array let arr = [1,2,3,4,5, "a", "b", "c"]; let [odd1, even1, odd2, even2, odd3, ...stringArr] = arr; //destruct string let arr1 = [1, "abc"]; let [number, [s1, s2, s3]] = arr1; //destruct 2 let obj = {name: 'Ivan', surname: 'Petrov', children: [{name: 'Maria'}, {name: 'Nikolay'}]}; let [name1, name2] = obj.children; //Задание на черный пояс let predictArray = { 11: 1, }; let history = "11"; let userChose = 1; while(userChose) { userChose = prompt("Введите 1 или 2"); alert(`Предсказываю ${predictArray[history]}`); predictArray[history] = +userChose; history += userChose; history = history.slice(1); }