// 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 += `` // } // str += "
${i}адын
" // console.log(str) // document.write(str) // Модифицируйте код так, что бы он выводил массив persons var str = ""; var counter = 1; for (let i = 0; i < persons.length; i++) { str += ``; counter++; } str += "
${counter}${Object.values(persons[i])}
"; str += "
" document.write(str); // HTML optional fields // Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы. // Имя и Фамилия, а так же другие поля при наличии. Колонки: поля, строки таблицы - персоны. var table = ""; var counter = 1; for (let i = 0; i < persons.length; i++) { table += ``; for (var key in persons[i]) { table += ``; } table += `` counter++; } table += "
${counter}${(persons[i])[key]}
"; table += "
"; document.write(table); // HTML tr color // Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга tr. var table = ""; var counter = 1; for (let i = 0; i < persons.length; i++) { table += ``; for (var key in persons[i]) { table += ``; } table += `` counter++; } table += "
${counter}${(persons[i])[key]}
"; 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 += ``; for (var key in persons[i]) { table += ``; } table += `` counter++; } table += "
${counter}${(persons[i])[key]}
"; table += "
"; document.write(table); // ----------------------------------------------------------------- var table = ""; var counter = 1; for (var key in persons[i]) { } for (let i = 0; i < persons.length; i++) { table += ``; if ('name' in persons[i]) { table += ``; } else { table += ``; } if ('surname' in persons[i]) { table += ``; } else { table += ``; } if ('fathername' in persons[i]) { table += ``; } else { table += ``; } if ('fullName' in persons[i]) { table += ``; } else { table += ``; } if ('age' in persons[i]) { table += ``; } else { table += ``; } if ('sex' in persons[i]) { table += ``; } else { table += ``; } table += `` counter++; } table += "
${counter}${(persons[i])['name']}-${(persons[i])['surname']}-${(persons[i])['fathername']}-${(persons[i])['fullName']}-${(persons[i])['age']}-${(persons[i])['sex']}-
"; 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;