Пользователь taksenov.github.com . Мои сайты на этом чудном сервисе:

1. Написать функцию 'isAllTrue' , которая принимает 2 параметра - 'source' и 'filterFn' source - массив 'filterFn' - фильтрующая функция Если фильтрующая функция вернет 'true' для ВСЕХ элементов массива, то и сама 'isAllTrue' вернет 'true' Если фильтрующая функция вернет 'false' хотя бы для одного элемента массива, то и сама 'isAllTrue' вернет 'false' пример:

		var allNumbers = [1, 2, 4, 5, 6, 7, 8],
		someNumbers = [1, 2, 'привет', 4, 5, 'loftschool', 6, 7, 8],
		noNumbers = ['это', 'массив', 'без', 'чисел'];
		function isNumber(val) {
			return typeof val === 'number';
		}
		console.log(isAllTrue(allNumbers, isNumber)); //вернет true
		console.log(isAllTrue(someNumbers, isNumber)); //вернет false
		console.log(isAllTrue(noNumbers, isNumber)); //вернет false
	
Выбрасывать и обрабатывать исключение, если в 'source' пустой массив.



2. Написать фукнцию 'isSomeTrue' , которая принимает 2 параметра - 'source' и 'filterFn' 'source' - массив 'filterFn' - фильтрующая функция Если фильтрующая функция вернет 'true' хотя бы для одного элемента массива, то и сама 'isSomeTrue' вернет 'true' Если фильтрующая функция вернет 'false' для ВСЕХ элементов массива, то и сама 'isSomeTrue' вернет 'false' Всё должно быть реализовано с использованием чистого js (не используя сторонние библиотеки). Так же, нельзя использовать методы для работы с массивами. пример:

		console.log(isSomeTrue(allNumbers, isNumber)); //вернет true
		console.log(isSomeTrue(someNumbers, isNumber)); //вернет true
		console.log(isSomeTrue(noNumbers, isNumber)); //вернет false	
	



3. Написать функцию 'calculator' , которая имеет один параметр - 'firstNumber' 'firstNumber' - это число, с которым будут производиться действия Функция 'calculator' должна возвращать объект, у которого должно быть несколько методов. Каждая из этих функций принимает неограниченное количество аргументов и производит какие-то арифметические операции с этими аргументами и тем числом, которое было передано в 'calculator' и возвращает результат: 'sum' - складывает 'firstNumber' с переданным аргументами 'dif' - вычитает из 'firstNumber' переданные аргументы 'div' - делит 'firstNumber' на первый переданный аргумент. Результат этой операции делится на второй переданный аргумент (если он есть) и так далее 'mul' - умножает 'firstNumber' на первый переданный аргумент. Результат этой операции умножается на второй переданный аргумент (если он есть) и так далее. Предусмотреть исключительные ситуации, для функции 'div', когда делитель равен нулю пример:

		var myCalculator = calculator(100);
		console.log(myCalculator.sum(1, 2, 3)); //вернет 106
		console.log(myCalculator.dif(10, 20)); //вернет 70
		console.log(myCalculator.div(2, 2)); //вернет 25
		console.log(myCalculator.mul(2, 2)); //вернет 400
	



4. написать аналоги методов для работы с массивами: forEach, filter, map, slice, reduce, пример: let array = [1, 2, 3, 4, 5, 6]; forEach(array, item => console.log(item)); let greaterThan4 = filter(array, item => item > 4); let sqare = map(array, item => item*item); Описание того, как работают эти методы, есть на Mozilla Developer Network и в бесплатных видеоуроках LoftBlog/LoftSchool. Внимание: в данном задании запрещено использовать встроенные методы для работы с массивами! Разрешено использовать стандартные операторы 'for/for-in/while/if`' (и т.д.) и свойство 'length'



5. Создать функцию `prepend` `prepend` имеет два параметра, в которые нужно передать элементы Задача функции - вставить второй элемент в начало первого. Например: `prepend(container, newElement)` - newElement должен быть добавлен в начало элемента container.



6. Создать функцию `deleteTextNodes` Эта функция принимает на вход элемент и должна удалить все текстовые узлы внутри указанного элемента. Функция может работать не рекурсивно, то есть не заходить внутрь дочерних элементов контейнера. *Реализовать функцию, описанную в ДЗ-2, рекурсивно



7. Создать функцию `scanDOM`. `scanDOM` должна перебирать все узлы на странице и выводить в консоль статистику по элементам и классам на странице. Например: Тэгов div: 10 Тэгов a: 5 Тэгов span: 10 Текстовых узлов: 100 Элементов с классом c1: 10 Элементов с классом c2: 20 Количество и название классов/тегов заранее неизвестно. Функция сама должна определить количество и название тегов/классов. Для продвинутой работы с классами элемента, рекомендуется ознакомиться со свойством `classList`. Для всех ДЗ запрещено использовать сторонние фреймворки и библиотеки. Только нативный JS



8. Создать функцию `timer`. Функция `timer` должна возвращать новый промис. Функция `timer` принимает 1 аргумент - количество миллисекунд, через которые промис должен перейти в состояние `fulfilled`. Пример использования: timer(3000).then(() => console.log('я вывелась через 3 секунды')) Запрещено использование любых библиотек (включая jQuery) и фреймворков.



9. Загрузить города при помощи AJAX из https://raw.githubusercontent.com/smelukov/citiesTest/master/cities.json (сервер поддерживает AJAX CORS) Отсортировать города по алфавиту и вывести на странице. Использование промисов обязательно. Запрещено использование любых библиотек (включая jQuery) и фреймворков.



10. Создать страничку с текстовым полем. После загрузки странички, загрузить список городов при помощи AJAX. При вводе текста в тестовое поле, выводить под текстовым полем список тех городов, в названиях которых есть введенный текст. Использование промисов обязательно. Запрещено использование любых библиотек (включая jQuery) и фреймворков.



11. Переделать предыдущее ДЗ с загрузкой списка городов по AJAX. После загрузки страницы, происходит загрузка городов через AJAX. Города сортируются по имени и выводятся на странице при помощи шаблонизатора Handlebars. При вводе значений в текстовое поле, должны скрываться те города, в названии которых нет подстроки, указанной в текстовом поле.



12. Создать приложение для ВКонтакте , которое загружает список ваших друзей и выводит их на страницу в следующем формате: Фото, ФИО, Возраст, Дата рождения. Друзья должны быть отсортированы по дате рождения в порядке убывания. То есть на самом верху списка расположен друг с ближайший датой рождения. Использование шаблонизатора приветствуется.



13. Приложение для ВК Описание задания доступно по данной прямой ссылке: https://youtu.be/L4Jq9_H6bgE



. CSS Button Generator (ДЗ2 от loftschool.ru)

. CSS Button Generator (ДЗ2 от loftschool.ru)

. CSS Button Generator (ДЗ2 от loftschool.ru)

. CSS Button Generator (ДЗ2 от loftschool.ru)

. CSS Button Generator (ДЗ2 от loftschool.ru)

. Выполнение тестового задания на должность верстальщика в Яндекс

. Выполнение тестового задания в компаню Questoria

. Карта сайта

. Карта сайта (СНТ.РФ)