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