Browse Source

04 HW update

Ivan Asmer 7 years ago
parent
commit
2464411363

+ 9 - 1
02OperationsTypesComparisonConditionLogic.md

@@ -485,10 +485,18 @@ var isYoung   = age > 16 && age < 30 // человек молод от 16 до 3
 ### Порядок выполнения логических выражений
 
 Логические выражения выполняются *оптимальным способом* слева направо. То есть, если в **ИЛИ** попался `true`, то следующая часть выражения даже не
-будет обрабатываться. **ИЛИ** ищет `true`, и, когда находит, экономит ресурсы компьютера, *сразу же* возвращая true как результат выражения.
+будет обрабатываться, так как результат уже `true`. **ИЛИ** ищет `true`, и, когда находит, экономит ресурсы компьютера, *сразу же* возвращая true как результат выражения.
+
+```javascript
+confirm('a') || confirm('b')
+```
 
 **И**, напротив, "ищет" `false`. То есть, если найден `false`, то нет смысла далее обрабатывать выражение - оно, так или иначе, будет `false`.
 
+```javascript
+confirm('a') && confirm('b')
+```
+
 Учтите, что `||` и `&&` возвращают **не** `true` или `false` (значение булевского типа), а значения подвыражения как оно есть:
 Как `false` интерпретируются:
 - `false` 

+ 2 - 2
03StructuresAndEvaluationsLoopsHomeWork.md

@@ -164,7 +164,7 @@ person.smartphone.owner.laptop.owner.smartphone == person.smartphone
 
 ## empty loop
 
-Сделайте цикл с `prompt`, который прерывается по нажатию **OK** и продолжается по нажатию **Отмена** **c пустым телом цикла**.
+Сделайте цикл с `prompt`, который прерывается по нажатию **OK** и продолжается по нажатию "**Отмена**" **c пустым телом цикла**.
 
 ## progression sum
 Подсчитать сумму арифметической прогрессии от 1 до N c шагом 3 (1,4,7....) используя цикл `for`.
@@ -232,7 +232,7 @@ arr[i] = [] //в i-тый элемент массива заносится но
 var selectors = ["#surname", "#name", "#age", "select#sex"];
 ```
 
-В цикле прочтите значения всех полей ввода из селекторов и сохраните в объект с ключами-селекторами из массива. То есть для примера выше:
+В цикле прочтите значения всех полей ввода из селекторов и сохраните в объект с ключами-селекторами из массива. То есть, для примера выше:
 ```javascript
 {
     "#surname": "<текст, который ввел пользователь в поле ввода с id=surname>",

+ 1 - 1
04AssociativeArrays.md

@@ -1,7 +1,7 @@
 # Ассоциативные массивы, `in`, JSON
 
 Кроме обычных массивов, в которых ключем служит целое число от 0 до `array.length -1`, существуют **ассоциативные массивы**, ключем в котором может быть любой другой
-тип данных; обычно используется строка. В **JavaScript** нет специального типа данных для ассоциативных массивов - вместо этого ассоциативные
+тип данных, который **JS** приводит к строке. В **JavaScript** нет специального типа данных для ассоциативных массивов - вместо этого ассоциативные
 массивы представлены объектами (`Object`):
 
 

+ 52 - 23
04AssociativeArraysHomeWork.md

@@ -1,47 +1,76 @@
 # Домашнее задание: Ассоциативные массивы
 
-1. Сделать три ассоциативных массива `a`, `b`, `c`, в каждом из которых должны быть поля `name` и `surname`.
-2. Добавьте некоторые другие поля (например `age`, `fathername`, `sex` (пол)) так, что бы набор полей отличался у разных записей
-3. Проверьте наличие полей у каждого из этих массивов. Если поле найдено, выведите его с помощью `alert`. Проверку делайте по `typeof` или `in` в `if`.
-4. Добавьте несколько ассоциативных массивов с персонами в *обычный* массив `persons`, например `a`,`b`,`c`. Так же добавьте персону *литерально*.
-   Получится обычный массив с элементами-ассоциативными массивами с персонами.
-5. Сделайте цикл, который выводит весь массив `persons` в форме объектов `console.log(persons[i])`
-6. Сделайте цикл, который выводит весь массив `persons`, но только Имя и Фамилию каждой персоны. Используйте вложенный `for` для вывода полей персоны
-7. Сделайте цикл, который выводит весь массив `persons`, но только Имя и Фамилию каждой персоны. Используйте `Object.keys` и вложенный `for` для вывода полей персоны
-8. Сделайте цикл, который выводит весь массив `persons`, при этом проверяет наличие других полей (кроме `name` и `surname`), и выводит дополнительные сообщения с этими полями.
-   `typeof` в помощь.
-9. Сделайте цикл, которых добавляет поле `fullName`, содержащий ФИО. Учтите, что поле `fathername` не является обязательным.
-10. Создайте `JSON`-строку из `persons`
-11. Создайте ассоциативный массив с одной персоной из `JSON`-строки. Добавьте её в `persons`
+## 3 persons
+Сделать три ассоциативных массива `a`, `b`, `c`, в каждом из которых должны быть поля `name` и `surname`.
+
+## different fields
+Добавьте некоторые другие поля (например `age`, `fathername`, `sex` (пол)) так, что бы набор полей отличался у разных записей
+
+## fields check
+Проверьте наличие полей у каждого из этих массивов. Если поле найдено, выведите его с помощью `alert`. Проверку делайте по `typeof` или `in` в `if`.
+
+## array of persons
+Добавьте несколько ассоциативных массивов с персонами в *обычный* массив `persons`, например `a`,`b`,`c`. Так же добавьте персону *литерально* (`{...}`).
+Получится обычный массив с элементами-ассоциативными массивами с персонами.
+
+## loop of persons
+Сделайте цикл, который выводит весь массив `persons` в форме объектов `console.log(persons[i])`
+
+## loop of fields loop of persons
+Сделайте цикл, который выводит весь массив `persons`, но только Имя и Фамилию каждой персоны. Используйте вложенный `for` для вывода полей персоны
+
+## loop of loop of keys
+Сделайте цикл, который выводит весь массив `persons`, но только Имя и Фамилию каждой персоны. Используйте `Object.keys` и вложенный `for` для вывода полей персоны
+
+
+## loop of loop with optional fields
+Сделайте цикл, который выводит весь массив `persons`, при этом проверяет наличие других полей (кроме `name` и `surname`), и выводит дополнительные сообщения с этими полями.
+## fullname
+Сделайте цикл, которых добавляет поле `fullName`, содержащий ФИО. Учтите, что поле `fathername` не является обязательным.
+
+## serialize
+Создайте `JSON`-строку из `persons`
+
+## deserialize
+Создайте ассоциативный массив с одной персоной из `JSON`-строки. Добавьте её в `persons`
+
+## HTML
 12. Сделайте цикл, который выводит весь массив `persons`, в форме HTML-таблицы. Имя и Фамилия
+
+## HTML optional fields
 13. Сделайте цикл, который выводит весь массив `persons`, в форме HTML-таблицы. Имя и Фамилия, а так же другие поля при наличии.
+
+## HTML tr color
 14. Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга `tr`.
+
+## HTML th optional
 15. Переработайте вывод `persons` в HTML с поиском всех возможных колонок во всех записях, выводом названий колонок в заголовок HTML-таблицы.
     Для решения этой задачи вначале узнайте множество полей (ключей) во всех записях, выведите HTML-заголовок используя тэги `<th>`, а потом выводите все 
     записи.
+
 ## Задание на синий пояс.
 
 Сделать HTML-конструктор из деревянной структуры, которая была на прошлом занятии:
 
 ```javascript
 var someTree = {
-    tag: "table", //html tag
-    nestedTags: [ //вложенные тэги
+    tagName: "table", //html tag
+    subTags: [ //вложенные тэги
         {
-                    tag: "tr",
-                    nestedTags: [
+                    tagName: "tr",
+                    subTags: [
                         {
-                            tag: "td",
-                            content: "some text",
+                            tagName: "td",
+                            text: "some text",
                         },
                         {
-                            tag: "td",
-                            content: "some text 2",
+                            tagName: "td",
+                            text: "some text 2",
                         }
                     ]
         }
     ],
-    options: 
+    attrs: 
     {
         border: 1,
     },
@@ -62,6 +91,7 @@ HTML(в строке `str`):
 </table>
 ```
 Переносы строк и отступы в результате не принципиальны, главное - структура HTML
+Проверьте ваш код на других структурах.
 
 ## Задание на черный пояс
 
@@ -74,4 +104,3 @@ var newValue     = prompt("введите 1 или 2","");
 predictArray[history] = newValue         //сохраняем новый ввод
 //сдвигаем историю
 ```
-