Объявление функции JS с пределом 1 символ на строку? - PullRequest
0 голосов
/ 30 июня 2018

В настоящее время я выполняю JS-вызов по следующим правилам:
Вам нужно написать функцию f, которая возвращает строку Hello, world!.
Требование: каждая строка должна содержать не более 1 символа, а общее количество строк должно быть не более 145
. Я сделал это, но единственное, с чем я борюсь - это объявление функций. Самое короткое, что я придумал, это:

f
=
_=>

Должен быть какой-то «хакерский» способ объявления функции в js с пределом 1 символ в строке.

Ответы [ 3 ]

0 голосов
/ 01 июля 2018

Избегайте ключевых слов, они не будут работать. Кроме того, есть пара вещей, которые вы должны знать:

  • Не используйте строки, нет возможности сделать их многострочными. Шаблонные литералы также не будут работать, так как символы новой строки будут работать при правильном использовании.
  • Function позволяет вам построить функцию из строки, например, Function("return 'Hello, world!'") сгенерирует функцию, которая возвращает Hello, world!, хотя существуют и другие (и, возможно, более короткие) способы создания функции, возвращающей строку.
  • JSF и деструктурирующее задание (я оставлю это как загадочный намек, потому что в конце концов это вызов, а вы должны все это понять!).
0 голосов
/ 03 июля 2018

Мы могли бы написать объявление нашей функции в HTML-теге textarea с каждой строкой не более 1 символа, а затем взять из нее значение, заменить новые строки и выполнить eval() функцию с этой строкой.

Если бы мы использовали Function() вместо eval(), то у нас была бы только анонимная функция без объявления функции "f".

Пример решения:

eval(document.querySelector('#tArea').value.replace(/\n/g, ''));
console.log(f());
<textarea id="tArea" rows="15" cols="35">
f
u
n
c
t
i
o
n
 
f
(
)
{
r
e
t
u
r
n
 
'
H
e
l
l
o
,
 
w
o
r
l
d
!
'
}
</textarea>
0 голосов
/ 30 июня 2018

Вы можете разбить строку на массив, используя: var charArray=str.split("").
А потом сделай что-нибудь с этим, может быть forEach().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...