// 3 persons
// Сделать три ассоциативных массива a, b, c, в каждом из которых должны быть поля name и surname.
var a = {
name: 'Vasya',
surname: 'Pupkin'
}
var b = {
name: 'Sanya',
surname: 'Beliy'
}
var c = {
name: 'Petro',
surname: 'Poroshenko'
}
// different fields
// Добавьте некоторые другие поля (например age, fathername, sex (пол))
// так, что бы набор полей отличался у разных объектов
a.age = '18';
b.fathername = 'Mikhailovich';
c.sex = 'Male';
// fields check
// Проверьте наличие необязательных полей у каждого из этих массивов.
// Если поле найдено, выведите его с помощью alert.
// Проверку делайте по typeof или in в if.
if ("fathername" in a) {
alert(a.fathername + ' in a');
}
else {
if ("fathername" in b) {
alert(b.fathername + ' in b');
}
else {
if ("fathername" in c) {
alert(c.fathername + ' in c');
}
}
}
// array of persons
// Добавьте несколько ассоциативных массивов с персонами в обычный массив persons, например a,b,c.
// Так же добавьте персону литерально ({...}).
// Получится обычный массив с элементами-ассоциативными массивами с персонами.
var persons = [];
persons.push(a);
persons.push(b);
persons.push(c);
var d = {
name: 'Kyril',
surname: 'NeKyril'
};
persons[3] = d;
console.log(persons);
// loop of persons
// Сделайте цикл, который выводит весь массив persons в форме объектов console.log(persons[i])
for (let i = 0; i < persons.length; i++) {
console.log(persons[i]);
}
// loop of name and surname
// Сделайте цикл, который выводит весь массив persons, но только Имя и Фамилию каждой персоны.
for (let i = 0; i < persons.length; i++) {
console.log(persons[i].name + ' ' + persons[i].surname);
}
// loop of loop of values
// Сделайте цикл, который выводит весь массив persons, но только значения всех полей из объектов.
// Используйте вложенный цикл
for (let i = 0; i < persons.length; i++) {
console.log(Object.values(persons[i]));
}
// fullName
// Сделайте цикл, которых добавляет поле fullName в каждый объект, содержащий ФИО.
// Учтите, что поле fathername не является обязательным.
for (let i = 0; i < persons.length; i++) {
if ('fathername' in persons[i]) {
persons[i].fullName = persons[i].surname + ' ' + persons[i].name + ' ' + persons[i].fathername;
console.log(persons[i].fullName);
}
else {
persons[i].fullName = persons[i].surname + ' ' + persons[i].name;
console.log(persons[i].fullName);
}
}
// serialize
// Создайте JSON-строку из persons
var pers = JSON.stringify(persons);
console.log(pers);
// deserialize
// Создайте ассоциативный массив с одной персоной из JSON-строки. Добавьте её в persons
var persona = JSON.parse('{"name":"Vasya","surname":"Pupkin","age":"18","fullName":"Pupkin Vasya"}');
console.log(persona);
persons.push(persona);
console.log(persons);
// HTML
// Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. Имя и Фамилия - колонки.
// Пример кода:
// var str = "
"
// for (let i=0;i<1;i++){
// str += `${i} | адын |
`
// }
// str += "
"
// console.log(str)
// document.write(str)
// Модифицируйте код так, что бы он выводил массив persons
var str = "";
var counter = 1;
for (let i = 0; i < persons.length; i++) {
str += `${counter} | ${Object.values(persons[i])} |
`;
counter++;
}
str += "
";
str += ""
document.write(str);
// HTML optional fields
// Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы.
// Имя и Фамилия, а так же другие поля при наличии. Колонки: поля, строки таблицы - персоны.
var table = "";
var counter = 1;
for (let i = 0; i < persons.length; i++) {
table += `${counter} | `;
for (var key in persons[i]) {
table += `${(persons[i])[key]} | `;
}
table += `
`
counter++;
}
table += "
";
table += "";
document.write(table);
// HTML tr color
// Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга tr.
var table = "";
var counter = 1;
for (let i = 0; i < persons.length; i++) {
table += `${counter} | `;
for (var key in persons[i]) {
table += `${(persons[i])[key]} | `;
}
table += `
`
counter++;
}
table += "
";
table += "";
document.write(table);
// HTML th optional
// Переработайте вывод persons в HTML с поиском всех возможных колонок во всех записях,
// выводом названий колонок в заголовок HTML-таблицы.
// Для решения этой задачи вначале узнайте множество полей (ключей) во всех записях (они не совпадают),
// выведите HTML-заголовок используя тэги , а потом выводите все записи.
// Ниже выведите все персоны построчно. Следите за корректностью колонок.
// Для этого вам нужно итерировать общий набор колонок, а не каждую персону,
// колонки из которой могут отличаться от предыдущей.
var table = "";
var counter = 1;
for (let i = 0; i < persons.length; i++) {
table += `${counter} | `;
for (var key in persons[i]) {
table += `${(persons[i])[key]} | `;
}
table += ` `
counter++;
}
table += " ";
table += "";
document.write(table);
// -----------------------------------------------------------------
var table = "";
var counter = 1;
for (var key in persons[i]) {
}
for (let i = 0; i < persons.length; i++) {
table += `${counter} | `;
if ('name' in persons[i]) {
table += `${(persons[i])['name']} | `;
}
else {
table += `- | `;
}
if ('surname' in persons[i]) {
table += `${(persons[i])['surname']} | `;
}
else {
table += `- | `;
}
if ('fathername' in persons[i]) {
table += `${(persons[i])['fathername']} | `;
}
else {
table += `- | `;
}
if ('fullName' in persons[i]) {
table += `${(persons[i])['fullName']} | `;
}
else {
table += `- | `;
}
if ('age' in persons[i]) {
table += `${(persons[i])['age']} | `;
}
else {
table += `- | `;
}
if ('sex' in persons[i]) {
table += `${(persons[i])['sex']} | `;
}
else {
table += `- | `;
}
table += ` `
counter++;
}
table += " ";
table += "";
document.write(table);
// destruct array
// напишите код, который используя деструктуризацию положит:
// * четные числа в переменные even1, even2,
// * нечетные в odd1, odd2, odd3,
// * буквы в отдельный массив
var arr = [1, 2, 3, 4, 5, "a", "b", "c"];
var [, even1, , even2] = arr;
var [odd1, , odd2, , odd3] = arr;
var [, , , , , ...chars] = arr;
// destruct string
// Напишите код, который используя деструктуризацию положит:
// * число в переменную number
// * букву a в переменную s1
// * букву b в переменную s2
// * букву c в переменную s3
var arr = [1, "abc"];
var [number] = arr;
var s1 = arr[1][0];
var s2 = arr[1][1];
var s3 = arr[1][2];
// destruct 2
// извлеките используя деструктуризацию имена детей в переменные name1 и name2
var obj = {
name: 'Ivan',
surname: 'Petrov',
children: [{ name: 'Maria' }, { name: 'Nikolay' }]
}
var name1 = obj['children'][0]['name'];
var name2 = obj['children'][1]['name'];
// destruct 3
// извлеките используя деструктуризацию объектов два первых элемента и длину массива в переменные a, b и length
var arr = [1, 2, 3, 4, 5, 6, 7, 10]
var [a] = arr;
var [, b] = arr;
var length = arr.length; |