Функции от по-висок ред в JS

Склонни сме да мислим, че функциите са специални, но не са. В Javascript функциите са „първокласни обекти“, което е друг начин да се каже, че функциите са като всяка друга стойност в Javascript. Можем да вкараме функции в масив, да извикаме функции в масива или да предадем функции в други функции. Функциите, които приемат функция или връщат функция, се наричат ​​„функции от по-висок ред“.

Функциите от по-висок порядък могат да ни помогнат да поддържаме нашия код чист и сух („не се повтаряйте“) и да не използваме отново for-цикли.

Array.prototype.map()

Методът map() създава нов масив с резултатите от извикване на предоставена функция за всеки елемент в извикващия масив. Новият масив ще има същата дължина като входния масив, но съдържанието му ще бъде променено в нова форма от функцията. Map() не променя масива, към който се извиква

Тук създадох масив с пет елемента числа. На втория ред от кода извикваме функцията Array.map и умножаваме всяко число от дадения масив по 2. А на последния ред получаваме нов масив с числа.

Array.prototype.filter()

Методът filter() създава нов масив с всички елементи, които преминават теста, реализиран от предоставената функция. Ако нито един елемент не премине теста, ще бъде върнат празен масив.

Тук, когато извикаме функция, получаваме нов масив с три елемента, които преминават теста. Filter() не променя масива, към който се извиква.

Array.prototype.reduce()

Методът reduce() изпълнява функция за редуциране (която предоставяте) на всеки елемент от масива, което води до единична изходна стойност.

В кода по-долу има прост пример как можем да използваме метода. Той приема първия елемент от масива като начална стойност и започва да намалява от втория елемент.

Заключение

Функцията от по-висок ред е мощен инструмент за избягване на писането на повтарящ се код. Карта, филтриране, намаляване са основни примери, които улесняват кодирането.