Browse Source

Загрузить файлы 'JS05'

LesIurii 5 years ago
parent
commit
16eb50eb27
3 changed files with 124 additions and 0 deletions
  1. 14 0
      JS05/index.html
  2. 3 0
      JS05/main.css
  3. 107 0
      JS05/main.js

+ 14 - 0
JS05/index.html

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>Page Title</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" type="text/css" media="screen" href="main.css">
+   
+</head>
+<body id="tbl">
+    <script src="main.js"></script> 
+</body>
+</html>

+ 3 - 0
JS05/main.css

@@ -0,0 +1,3 @@
+tr:nth-child(odd) {
+    background: rgba(25,155,10);
+}

+ 107 - 0
JS05/main.js

@@ -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);
+
+