KorniloFF-ScriptS ©

Здравствуйте, Гость!
Page
Menu

Полезные функции

Я прекрасно знаю, что многие из приведённых функций появились в нативном исполнении в версиях ES5+. Конечно, если вы программируете, используя новейший синтаксис, лучше использовать нативные варианты - они работают быстрее. Но данная страница может послужить как полифилл для более ранних версий языка, так и в образовательных целях, для лучшего понимания их работы.

Функция-тестировщик для функций

Функция-оболочка, принимающая в себя тестируемую функцию в качестве аргумента, вызывающая её заданное количество раз и возвращающая массив с результатами отработки тестируемой функции.

Таким образом, теперь можно отследить работу разных экземпляров Универсального генератора. Для этого мы создадим кнопку, навесим на неё обработчик, в котором вызовем функцию-тестировщик и передадим ей в качестве аргумента функцию созданного экземпляра Универсального генератора.

Для лучшего восприятия сделаем вывод возвращаемого тестировщиком массива не только в консоль, но и в HTML.

Здесь будут показаны результаты

Исходный код кнопки

Исходный код javascript

Аналог array_map

Данная функция является аналогом функции array_map в PHP.

Как и предыдущая функция она принимает в качестве первого аргумента другую функцию. Вторым аргументом задаётся массив.

Логика работы функции простая: каждый элемент массива обрабатывается функцией из первого аргумента. Возвращается новый массив с обработанными значениями.

Пример использования

Итак, предположим, мы имеем какой-то массив [1,2,3,4] и хотим получить массив, содержащий квадраты его элементов. С функцией map это реализуется следующим образом: map(function(i) {return i*i}, [1,2,3,4])

1,2,3,4

Исходный код

Частичное применение

Предположим, что функции, принимающей 5 аргументов, нам нужно задавать разнымы тольько четвёртый и пятый. А первые три у нас остаются неизменными. Такие случаи называются частичным применением функции.

Такое применение оправдано, когда при множественном вызове функции в качестве нескольких аргументов ей передаются какие-то константы. Тогда частичное применение вполне оправдывается сокращением количества передаваемых аргументов.

Рассмотрим примеры такого применения.

Использование частичного применения функции

Исходный код

Выборка объектов по ключу из массива

Функция pluck берет массив объектов и возвращает массив значений определенного поля.

Исходный код

Фильтрование массива

Функция filter принимает функцию-предикат и массив. Возвращает она массив значений, для которых предикат вернет true.

Исходный код

Подсчёт свойств объекта

Функция countPropts считает число свойств в объекте. Современный аналог - Object.key(obj).length

Исходный код

Комментарии к теме ( 0 )

Комментариев пока нет.

Дабавить комментарий