Ivan Asmer преди 7 години
родител
ревизия
a67514470c
променени са 4 файла, в които са добавени 101 реда и са изтрити 1 реда
  1. 6 0
      07DOM.md
  2. 2 1
      A/05Functions.md
  3. 88 0
      A/06FunctionsES6HomeWork.md
  4. 5 0
      DOMHomeWork.md

+ 6 - 0
07DOM.md

@@ -17,6 +17,12 @@ var el2 = document.querySelector("#someId"); //поиск по любому се
 var el3 = document.querySelectorAll("a");    //поиск всех тэгов a
 ```
 
+Так же, с некоторых пор, `id` тэга HTML является ключем в объекте `window` (т. е. в глобальной области видимости), что позволяет обращаться к элементам еще проще:
+
+```javascript
+alert(someId.innerText)
+```
+
 ## Создание элементов **DOM**
 
 ```javascript

+ 2 - 1
A/05Functions.md

@@ -574,10 +574,11 @@ longFunc('check', 'text')
 Функция, передаваемая в качестве параметра другой функции для последующего вызова называется `callback`.
 
 ```javascript
-var production = [1,2,3,4].reduce((a,b) => a * b)
+var product    = [1,2,3,4].reduce((a,b) => a * b)
 var numbers    = [prompt(), prompt(), prompt()].map(function(a){
     return +a;
 })
+var odd        = [1,2,3,4,5,6].filter(a => a%2) //фильтруем только нечетные числа
 ```
 
 ```javascript

+ 88 - 0
A/06FunctionsES6HomeWork.md

@@ -0,0 +1,88 @@
+# Домашнее задание. Функции 2, ES6
+
+## ES6
+
+Переделайте предыдущее ДЗ используя максимум возможностей **ES6**. Отметьте облегчение (или утяжеление) синтаксиса.
+
+## sort
+
+Сделайте обобщенную функцию сортировки массива
+
+```javascript
+var persons = [
+    {name: "Иван", age: 17},
+    {name: "Мария", age: 35},
+    {name: "Алексей", age: 73},
+    {name: "Яков", age: 12},
+]
+
+sort(persons, "age"); //сортирует по возрасту по возрастанию
+sort(persons, "name", false); //сортирует по имени по убыванию
+```
+
+Функция позволяет отсортировать *любой набор* данных по имени поля (второй параметр). Третьим параметром идет необязательный `Boolean`, который в случае `true` делает сортировку по возрастанию, в случае `false` - по убыванию. По умолчанию (без третьего параметра) 
+происходит сортировка по возрастанию.
+
+## array map 
+
+Используя `Array.map` приведите все строки в массиве к числу. Элементы других типов оставьте как есть:
+
+```javascript
+["1", {}, null, undefined, "500", 700]
+```
+
+должно превратиться в 
+
+```javascript
+[1, {}, null, undefined, 500, 700]
+```
+
+## array reduce
+
+Получите произведение всех чисел в массиве, используя `Array.reduce`. Не обрабатывайте типы данных, не являющиеся числом.
+
+```javascript
+["0", 5, 3, "string", null]
+```
+
+результат должен быть 15
+
+
+## object filter
+
+Напишите свою реализацию `Array.filter` для **объектов**:
+
+```javascript
+var phone = {
+    brand: "meizu",
+    model: "m2",
+    ram: 2,
+    color: "black",
+};
+
+filter(phone,(key,value) => key == "color" || value == 2);
+});
+```
+
+должно вернуть 
+```javascript
+{
+    ram: 2,
+    color: "black",
+}
+```
+
+Для удаления пары ключ-значение используйте `delete`. Или сделайте *копию* объекта.
+
+## object map
+
+Напишите свою реализацию `Array.map` для **объектов**:
+
+```javascript
+map({name: "Иван", age: 17},function(key,value){
+    var result = {};
+    result[key+"_"] = value + "$";
+    return result;
+}) //должен вернуть {name_: "Иван$", age_: "17$"}
+```
+

+ 5 - 0
DOMHomeWork.md

@@ -14,3 +14,8 @@
 ## Подсветить строку и столбец,
 
 в которой находится подсвеченная ячейка. Используйте `parentElement` (родительский элемент элемента DOM), и список его детей: `childNodes`.
+
+## Calc
+
+Сделайте ваш калькулятор из первых занятий используя **DOM** и элементы `input`
+