Во-первых, вы хотите понять, что означает функциональное программирование; то есть, каковы основные понятия и насколько хорошо язык позволяет придерживаться этих понятий. Для ООП основными понятиями являются инкапсуляция, наследование и полиморфизм (или просто передача сообщений для небольших пользователей). Для FP центральным принципом является ссылочная прозрачность (что подразумевает безгражданство). Попытка программирования в функциональном стиле на языке, который не поддерживает функциональные особенности (например, функции в качестве объектов первого класса), будет неудобной, если не невозможной. То же самое с программированием в ООП на языках, которые не имеют функций ООП.
К счастью, Javascript является мультипарадигмой и поддерживает оба. Вместо того, чтобы искать примеры кода, который является «функциональным», просто подумайте обо всех способах, которыми вы можете обеспечить ссылочную прозрачность, и это естественно приведет к использованию функций языка FP, таких как лямбда-выражения, замыкания, функции высшего порядка (например, отображение, уменьшение, фильтрация), каррирование и т. д.
Серьезно, это не означает, что это не ответ. Я действительно думаю, что это самый мотивирующий и эффективный способ приблизиться к нему.
Тем не менее, вот некоторые, надеюсь, полезные ссылки.
FP программирование на JavaScript
Практически адекватное руководство по FP