|
@@ -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-таблицы. Имя и Фамилия
|
|
12. Сделайте цикл, который выводит весь массив `persons`, в форме HTML-таблицы. Имя и Фамилия
|
|
|
|
+
|
|
|
|
+## HTML optional fields
|
|
13. Сделайте цикл, который выводит весь массив `persons`, в форме HTML-таблицы. Имя и Фамилия, а так же другие поля при наличии.
|
|
13. Сделайте цикл, который выводит весь массив `persons`, в форме HTML-таблицы. Имя и Фамилия, а так же другие поля при наличии.
|
|
|
|
+
|
|
|
|
+## HTML tr color
|
|
14. Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга `tr`.
|
|
14. Добавьте к предыдущему примеру раскраску через строчку используя другой стиль тэга `tr`.
|
|
|
|
+
|
|
|
|
+## HTML th optional
|
|
15. Переработайте вывод `persons` в HTML с поиском всех возможных колонок во всех записях, выводом названий колонок в заголовок HTML-таблицы.
|
|
15. Переработайте вывод `persons` в HTML с поиском всех возможных колонок во всех записях, выводом названий колонок в заголовок HTML-таблицы.
|
|
Для решения этой задачи вначале узнайте множество полей (ключей) во всех записях, выведите HTML-заголовок используя тэги `<th>`, а потом выводите все
|
|
Для решения этой задачи вначале узнайте множество полей (ключей) во всех записях, выведите HTML-заголовок используя тэги `<th>`, а потом выводите все
|
|
записи.
|
|
записи.
|
|
|
|
+
|
|
## Задание на синий пояс.
|
|
## Задание на синий пояс.
|
|
|
|
|
|
Сделать HTML-конструктор из деревянной структуры, которая была на прошлом занятии:
|
|
Сделать HTML-конструктор из деревянной структуры, которая была на прошлом занятии:
|
|
|
|
|
|
```javascript
|
|
```javascript
|
|
var someTree = {
|
|
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,
|
|
border: 1,
|
|
},
|
|
},
|
|
@@ -62,6 +91,7 @@ HTML(в строке `str`):
|
|
</table>
|
|
</table>
|
|
```
|
|
```
|
|
Переносы строк и отступы в результате не принципиальны, главное - структура HTML
|
|
Переносы строк и отступы в результате не принципиальны, главное - структура HTML
|
|
|
|
+Проверьте ваш код на других структурах.
|
|
|
|
|
|
## Задание на черный пояс
|
|
## Задание на черный пояс
|
|
|
|
|
|
@@ -74,4 +104,3 @@ var newValue = prompt("введите 1 или 2","");
|
|
predictArray[history] = newValue //сохраняем новый ввод
|
|
predictArray[history] = newValue //сохраняем новый ввод
|
|
//сдвигаем историю
|
|
//сдвигаем историю
|
|
```
|
|
```
|
|
-
|
|
|