diff --git a/lectures/lec5/p1/task1.js b/lectures/lec5/p1/task1.js new file mode 100644 index 0000000..3dc599d --- /dev/null +++ b/lectures/lec5/p1/task1.js @@ -0,0 +1,2 @@ +alert("Hello, world!"); +document.write("Hello, world!"); \ No newline at end of file diff --git a/lectures/lec5/p1/task2.js b/lectures/lec5/p1/task2.js new file mode 100644 index 0000000..e8b1cbf --- /dev/null +++ b/lectures/lec5/p1/task2.js @@ -0,0 +1,6 @@ +let _name = "Алина"; +let email = "alina@test.ru"; + +let message = `Доброго времени суток, ${_name}! Мы отправили Вам приглашение на почту ${email}.`; + +document.write(`
").filter(substr => substr.includes("
")).map(substr = substr.split("")[0]); +} \ No newline at end of file diff --git a/lectures/lec5/p2/task3.js b/lectures/lec5/p2/task3.js new file mode 100644 index 0000000..879e166 --- /dev/null +++ b/lectures/lec5/p2/task3.js @@ -0,0 +1,8 @@ +let arr = [12, 17, 12, 67, 23, 67, 8, 8, 9, 12, 8]; + +let newArr = arr.filter(function (item, index) { + return arr.indexOf(item) === index; +}); + +alert(newArr); +//12,17,67,23,8,9 \ No newline at end of file diff --git a/lectures/lec5/p2/task4.js b/lectures/lec5/p2/task4.js new file mode 100644 index 0000000..396b4b6 --- /dev/null +++ b/lectures/lec5/p2/task4.js @@ -0,0 +1,8 @@ +function sortNumbers(str){ + str=str.split(" "); + return str.filter(substr => !isNaN(parseFloat(substr)) && isFinite(Number(substr))).map(Number).sort((a,b) => {return Number(a)-Number(b)}); +} + +alert(sortNumbers(" 12 234 67 aboba 123 123 83 27 6")) + + diff --git a/lectures/lec5/p3/task1.js b/lectures/lec5/p3/task1.js new file mode 100644 index 0000000..c9060e5 --- /dev/null +++ b/lectures/lec5/p3/task1.js @@ -0,0 +1,10 @@ +let items = { + 'ручка': 20, + 'альбом': "a16", + 'тетрадь': 10 +}; + +let entries = Object.entries(items); +items=Object.fromEntries(entries.filter(entry =>!isNaN(parseFloat(entry[1]) && isFinite(Number(entry[1]))))) + +console.log(items); \ No newline at end of file diff --git a/lectures/lec5/p3/task2.js b/lectures/lec5/p3/task2.js new file mode 100644 index 0000000..d767ecc --- /dev/null +++ b/lectures/lec5/p3/task2.js @@ -0,0 +1,17 @@ + +function updateObject(oldObject, newObject) { + const [newKey, newValue] = Object.entries(newObject)[0]; + if (newKey in oldObject) { + oldObject[newKey] += newValue; + } else { + oldObject[newKey] = newValue; + } + return oldObject; +} + + +const oldObject = { 1: 10, 2: 20, 3: 30 }; +const newObject = { 2: 15 }; + +const updatedObject = updateObject(oldObject, newObject); +console.log(updatedObject); \ No newline at end of file diff --git a/lectures/lec5/p3/task3.js b/lectures/lec5/p3/task3.js new file mode 100644 index 0000000..192812e --- /dev/null +++ b/lectures/lec5/p3/task3.js @@ -0,0 +1,15 @@ +let objGoods = { + "ручка": [100, 50.60], + "карандаш": [120, 30.00], + "тетрадь": [200, 10.50] +}; + +outArr = []; +Object.entries(objGoods).forEach((entry) => { + let name = entry[0]; + entry[1].forEach(price => { + outArr.push({ "name": name, amount: price }) + }) +}); + +console.log(outArr); \ No newline at end of file diff --git a/lectures/lec5/p3/task4.js b/lectures/lec5/p3/task4.js new file mode 100644 index 0000000..55a9bc5 --- /dev/null +++ b/lectures/lec5/p3/task4.js @@ -0,0 +1,11 @@ +let items = { + 'ручка': 20, + 'альбом': 16, + 'тетрадь': 10 +}; + +let entries = Object.entries(items); +entries.sort((a,b) => Number(a[1])-Number(b[1])); +items=Object.fromEntries(entries) + +console.log(items); \ No newline at end of file diff --git a/lectures/lecture3.txt b/lectures/lecture3.txt deleted file mode 100644 index 83488dc..0000000 --- a/lectures/lecture3.txt +++ /dev/null @@ -1,57 +0,0 @@ - - - - -- var tag = 'h' -- var i = 1 - -#{tag+i} Уровень #{i} -- i++ -#{tag+i} Уровень #{i} -- i++ -#{tag+i} Уровень #{i} -- i++ -#{tag+i} Уровень #{i} - - - - -- var products ={"Товар":"Цена","ручка":30.5, "карандаш":50, "альбом":156, "тетрадь":21.5, "ластик":10.2} -table - each name,price in products - tr - td #{name} - td #{price} - - - -table - - for(var i=0;i<10;i++) - tr - - for(var j=0;j<10;j++) - - if((i + j) % 2 == 0) - td.white - - else - td.black - - - -mixin createList(listType, items, tag) - - var dispListType = "ul" - - if (listType == "ol") - - dispListType = "ol" - - #{dispListType}.list - each item in items - li - #{tag} #{item} - -// Вызов миксина -+createList('ul', ['Python', 'JavaScript', 'Java'], 'strong') - - -size=1% -section - box-shadow: size size (2*size) rgba(0,0,0,0.5) - padding:size*2 - margin:size*4 \ No newline at end of file diff --git a/lectures/readme.md b/lectures/readme.md index 96f53b6..185e075 100644 --- a/lectures/readme.md +++ b/lectures/readme.md @@ -67,7 +67,7 @@ id > class >tag 2. применение разных дисплеев 3. задача на align и чекпоинты -## 3 Препроцессоры +## 4 Препроцессоры ### p1 - Методологии вёрстки Лекция в основном про БЭМ (блок__элемент--модификатор), про принцип называния блоков по смыслу того что они делают. Кроме этого обозреваются другие методолгии (SMACSS\ECSS) @@ -94,9 +94,46 @@ id > class >tag Упомянуто несолкьо препроцессоров, фокус на stylus. в целом содержание лекции видно в задачах хотя в заданиях не затрагивался момент с возвращением значениев из миксинов, но всё равно инетересно +так-же оказалось что пробелы при написании операторов вычислений обязательны, это меня удивило конечно задачи: 1. переменные 2. вложенность 3. опять вложенность и на осознание принципов компиляции и частичных ссылок 4. миксины и вложенность 5. миксины и выисление + +## 5 JavaScript + +### p1 - операторы языка +Введение в основы JavaScript, синтаксис языка, базовые операторы и конструкции. Рассматриваются способы вывода информации (alert, document.write), работа с переменными и типами данных, шаблонные строки, условные операторы, циклы и функции. Особое внимание уделяется тернарному оператору, различным способам объявления функций (function declaration, function expression, arrow functions) и работе с аргументами функций. + +задачи: +1. вывод с помощью alert и document.write +2. работа с переменными и шаблонными строками +3. условные операторы и проверка чисел +4. тернарный оператор +5. циклы for и создание HTML-элементов +6. объявление функций и работа с arguments +7. function expression +8. arrow functions + +### p2 - структуры данных +Изучение работы с массивами и строками в JavaScript. filter, map, reduce, sort, работа со строками +остальные затронутые темы видны из названия задач + + +задачи: +1. извлечение и сумма чисел из строки +2. извлечение текста из HTML-тегов +3. на понимание работы оператора filter +4. фильтрация, преобразование и сортировка чисел из строки + +### p3 - объекты +Работа с объектами в JavaScript, их создание, модификация и обработка, перебор свойств объектов, фильтрация и сортировка данных в объектах. +остальные затронутые темы видны из названия задач + +задачи: +1. фильтрация свойств объекта по типу значений +2. обновление объекта с добавлением или увеличением значений +3. unford вложенныз свойств +4. сортировка объекта по значениям свойств