// 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+= `name | surname |
`;
// for (i in persons) {
// strResult += `${(persons[i].name) || ""} | ${(persons[i].name) || ""} |
`;
// };
// strResult+= `
`;
// document.write(strResult);
// HTML optional fields
// Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. Имя и Фамилия, а так же другие поля при наличии. Колонки: поля, строки таблицы - персоны.
// let strResult = ``;
// strResult+= `name | surname |
`;
// for (let i of persons) {
// strResult+= ``;
// for (let [key,value] of Object.entries(i)) {
// strResult +=`${key} | ${value} | `;
// }
// strResult+=`
`
// }
// strResult+='
';
// document.write(strResult);
// HTML tr color
// Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга tr.
let strResult = ``;
strResult+= `name | surname |
`;
k = 0;
for (let i of persons) {
// strResult+= ``;
if (k % 2 == 0) strResult+= `
`;
else strResult+= `
`;
for (let [key,value] of Object.entries(i)) {
strResult +=`${key} | ${value} | `;
}
strResult+=`
`
k++
}
strResult+='
';
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)
// //////////////////////