Я пытаюсь создать функцию из нескольких строк.
Параметры задачи:
- Функция возвращает «варвар»
- Только 2 символа в строке
- Максимум 40 строк. Я продолжаю пытаться использовать толстую стрелку, чтобы объявить свою функцию, но жирные стрелки не работают, если вы не подключили их.
Источник проблемы: https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world
Моя текущая работа:
f=
(
)=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'
Это работает, но ') =>' имеет длину 3 символа. Я действительно просто хочу знать, как можно даже растянуть создание функции. Я нигде не могу найти информацию об этом, поскольку это, очевидно, не очень практично.
code-challenge
restricted-source
tips
source-layout
javascript
theNewfelll
источник
источник
Ответы:
Вот 38-строчное решение:
Он создает функцию с помощью
Function
конструктора, к которой он обращается с[].map.constructor
помощью индексной нотации ([]['map']['constructor']
). Это метод, который JSFuck использует для создания функций.источник
[]['map']['constructor']
вместо[]['sum']['constructor']
?35 линий
Попробуйте онлайн!
Использует тот факт, что
0
это число, конструктор0
isNumber
и конструкторNumber
isFunction
.32 линии
Попробуйте онлайн!
Это по сути работает
который использует структуру IIFE . Дополнительным бонусом является то, что мы можем разорвать некоторые части в теле функции, чтобы уменьшить количество строк.
24 линии
Попробуйте онлайн!
Встроенная версия:
Поскольку все, что мы хотим, это вернуть строку, мы можем избежать использования метода строки, связанного со строкой. Используя
trim
, мы также можем безопасно покинуть начало новой строки.источник