// 3 persons // Сделать три ассоциативных массива a, b, c, в каждом из которых должны быть поля name и surname. // let a = { // name: 'S', // surname: 'H', // } // let b = { // name: 'S', // surname: 'H', // } // let c = { // name: 'S', // surname: 'H', // } // different fields // Добавьте некоторые другие поля (например age, fathername, sex (пол)) так, что бы набор полей отличался у разных объектов let a = { name: 'Ania', surname: 'Lampa', fathername: 'Ivanovna', } let b = { name: ' Serg', surname: 'Dez', age: 18, } let c = { name: ' Dema', surname: ' Antoshkin', sex: 'man', } // fields check // Проверьте наличие необязательных полей у каждого из этих массивов. Если поле найдено, выведите его с помощью alert. Проверку делайте по typeof или in в if. for (let key in a) { if (key != "name" && key != "surname") { alert(`${key} поле необезательно.`) } } for (let key in b) { if (key != "name" && key != "surname") { alert(`${key} поле необезательно.`) } } for (let key in c) { if (key != "name" && key != "surname") { alert(`${key} поле необезательно.`) } } // array of persons // Добавьте несколько ассоциативных массивов с персонами в обычный массив persons, например a,b,c. Так же добавьте персону литерально ({...}). Получится обычный массив с элементами-ассоциативными массивами с персонами. let persons = [] persons.push(a); persons.push(b); persons.push(c); persons.push({ name: "Ilya", surname: "Babka", fathername: "nety", age: 31, }); // loop of persons // Сделайте цикл, который выводит весь массив persons в форме объектов console.log(persons[i]) for (let i = 0; i < persons.length; i++) { console.log(persons[i]) } for (let i of persons) { console.log(i); } // loop of name and surname // Сделайте цикл, который выводит весь массив persons, но только Имя и Фамилию каждой персоны. for (let i of persons) { for (let [key, val] of Object.entries(i)) { if (key == "name" || key == "surname") { console.log([key, val]); } } } // loop of loop of values // Сделайте цикл, который выводит весь массив persons, но только значения всех полей из объектов. Используйте вложенный цикл for (let i of persons) { for (let value of Object.values(i)) { console.log(value); } } // fullName // Сделайте цикл, которых добавляет поле fullName в каждый объект, содержащий ФИО.Учтите, что поле fathername не является обязательным. for (let i of persons) { if (!i.fathername) { i.fathername = 'NET'; } i.fullname = `${i.surname} ${i.name} ${i.fathername}` } console.log(persons) // serialize // Создайте JSON-строку из persons let json = JSON.stringify(persons); console.log(typeof json); console.log(json) // deserialize // Создайте ассоциативный массив с одной персоной из JSON-строки. Добавьте её в persons // Пыталась сделать с помощью интернета не получилось // HTML // Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. Имя и Фамилия - колонки // let strResult = ``; // strResult+= ``; // for (i in persons) { // strResult += ``; // }; // strResult+= `
name surname
${(persons[i].name) || ""}${(persons[i].name) || ""}
`; // document.write(strResult); // HTML optional fields // Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. Имя и Фамилия, а так же другие поля при наличии. Колонки: поля, строки таблицы - персоны. // let strResult = ``; // strResult+= ``; // for (let i of persons) { // strResult+= ``; // for (let [key,value] of Object.entries(i)) { // strResult +=``; // } // strResult+=`` // } // strResult+='
name surname
${key}${value}
'; // document.write(strResult); // HTML tr color // Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга tr. let strResult = ``; strResult+= ``; k = 0; for (let i of persons) { // strResult+= ``; if (k % 2 == 0) strResult+= ``; else strResult+= ``; for (let [key,value] of Object.entries(i)) { strResult +=``; } strResult+=`` k++ } strResult+='
name surname
${key}${value}
'; document.write(strResult); // destruct array // let arr = [1,2,3,4,5, "a", "b", "c"] // напишите код, который используя деструктуризацию положит: // четные числа в переменные even1, even2, // нечетные в odd1, odd2, odd3, // буквы в отдельный массив let arr = [1,2,3,4,5, "a", "b", "c"] console.log(arr) let [odd1,even1,odd2,even2,odd3,...abc]=arr console.log(odd1) console.log(odd2) console.log(odd3) console.log(even1) console.log(even2) console.log(abc) // destruct string // let arr = [1, "abc"] // напишите код, который используя деструктуризацию положит: // число в переменную number // букву a в переменную s1 // букву b в переменную s2 // букву c в переменную s3 let arr = [1, "abc"] let[number,abc]=arr let[s1,s2,s3] = abc.split("") console.log(number) console.log(s1) console.log(s2) console.log(s3) // destruct 2 // let obj = {name: 'Ivan', // surname: 'Petrov', // children: [{name: 'Maria'}, {name: 'Nikolay'}]} // извлеките используя деструктуризацию имена детей в переменные name1 и name2 let obj = {name: 'Ivan', surname: 'Petrov', children: [{name: 'Maria'}, {name: 'Nikolay'}]} let { children: [{ name: name1 }, { name: name2 }] } = obj console.log(name1) console.log(name2) // destruct 3 // let arr = [1,2,3,4, 5,6,7,10] // извлеките используя деструктуризацию объектов два первых элемента и длину массива в переменные a, b и length let arr = [1,2,3,4, 5,6,7,10] let {length: length, [0]: a, [1]: b,}=arr console.log(length) console.log(a) console.log(b) // //////////////////////