|
@@ -0,0 +1,107 @@
|
|
|
+// Домашнее задание: Ассоциативные массивы
|
|
|
+// 3 persons
|
|
|
+var a = {
|
|
|
+ name: 'Sidor',
|
|
|
+ surname: 'Sidorov',
|
|
|
+};
|
|
|
+var b = {
|
|
|
+ name: 'Petr',
|
|
|
+ surname: 'Petrov',
|
|
|
+};
|
|
|
+var c = {
|
|
|
+ name: 'Ivan',
|
|
|
+ surname: 'Ivanov',
|
|
|
+};
|
|
|
+
|
|
|
+// different fields
|
|
|
+a.age = 25;
|
|
|
+b['sex'] = 'male';
|
|
|
+c.fathername = 'Ivanovich';
|
|
|
+
|
|
|
+// fields check
|
|
|
+//Проверьте наличие необязательных полей у каждого из этих массивов.
|
|
|
+// Если поле найдено, выведите его с помощью alert. Проверку делайте по typeof или in в if.
|
|
|
+console.log(a);
|
|
|
+var peoples = [a, b, c];
|
|
|
+for (var i=0; i < peoples.length; i++) {
|
|
|
+
|
|
|
+
|
|
|
+for (let field in peoples[i]) {
|
|
|
+ if (field !== 'name' || field !== 'surname') {
|
|
|
+ debugger;
|
|
|
+ console.log(`Массив ${peoples[i]} содержит необязательный переметр ${field}`); // как вывести имя объекта (например a)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+}
|
|
|
+// array of persons
|
|
|
+var persons = [a, b, c, e = {name:'Nikolaj', surname: 'Nikolaev'}]
|
|
|
+
|
|
|
+// loop of persons
|
|
|
+for (var i = 0; i < persons.length; i++) {
|
|
|
+ console.log(persons[i]);
|
|
|
+}
|
|
|
+
|
|
|
+// loop of name and surname
|
|
|
+for (var name in persons) {
|
|
|
+ console.log(persons['name']); //выводит только литеральный массив
|
|
|
+}
|
|
|
+// loop of loop of values
|
|
|
+
|
|
|
+
|
|
|
+// fullName
|
|
|
+for (var fN = 0; fN < persons.length; fN++) {
|
|
|
+ if (persons[fN['name']] !== -1 && persons[fN['surname']] !== -1) {
|
|
|
+ persons[fN].fullName = '';
|
|
|
+ }
|
|
|
+console.log(persons[fN]);
|
|
|
+}
|
|
|
+
|
|
|
+// serialize
|
|
|
+jsonStr = JSON.stringify([...persons]);
|
|
|
+console.log(jsonStr);
|
|
|
+
|
|
|
+// deserialize
|
|
|
+arrDes = JSON.parse('{"name": "Yura", "surname": "Lesovoy", "sex": "male"}');
|
|
|
+persons = persons.concat(arrDes);
|
|
|
+console.log(persons);
|
|
|
+
|
|
|
+
|
|
|
+// HTML
|
|
|
+// Сделайте цикл, который выводит весь массив persons, в форме HTML-таблицы.
|
|
|
+// Имя и Фамилия - колонки. Таблицы в HTML Пример кода:
|
|
|
+
|
|
|
+
|
|
|
+var str = "<table border='1'>";
|
|
|
+for (let key in persons){
|
|
|
+ // if (key % 2 == 0){
|
|
|
+ // str += `<tr style="background-color: rgba(0,255,100)><td>${persons['key']}</td><td>адын</td></tr>`;
|
|
|
+ // }
|
|
|
+ str += `<tr><td>${persons[key].name}</td><td>адын</td></tr>`;
|
|
|
+}
|
|
|
+
|
|
|
+for (let i=0; i < persons.length; i++) {
|
|
|
+ str += `<tr><td>${persons[i].name}</td><td>адын</td></tr>`;
|
|
|
+}
|
|
|
+
|
|
|
+str += "</table>";
|
|
|
+
|
|
|
+console.log(str);
|
|
|
+document.write(str);
|
|
|
+
|
|
|
+
|
|
|
+// HTML optional fields
|
|
|
+// var str = "<table border='1'>"
|
|
|
+// for (let i = 0; i < persons.length; i++){
|
|
|
+// str += `<tr>`;
|
|
|
+// for (let key in persons) {
|
|
|
+// str += `<td>${persons[key]}</td>`
|
|
|
+// }
|
|
|
+// str += `</tr>`
|
|
|
+// }
|
|
|
+// str += "</table>"
|
|
|
+// // tbl.innerHTML = str;
|
|
|
+// console.log(str);
|
|
|
+// document.write(str);
|
|
|
+
|
|
|
+
|