Обязательно возвращайте результат и вычитайте из num
на каждой итерации:
function spaces(num) {
let mySpaces = '';
while (num-- > 0)
mySpaces += ' ';
return mySpaces;
}
console.log(
JSON.stringify(spaces(1)),
'\n',
JSON.stringify(spaces(5))
);
В конечном счете, это кажется наиболее элегантным (и производительным ) подходом:
const spaces = (n) => Array(n + 1).join(' ');
console.log(
JSON.stringify(spaces(1)),
'\n',
JSON.stringify(spaces(5))
);
1,1 млн операций в секунду для Array.join
по сравнению с 86k для while
l oop.
РЕДАКТИРОВАТЬ
Полностью отключено на String.repeat
, спасибо Даниэлю за это. Нажатие 2M операций / с :
const spaces = (n) => " ".repeat(n);
console.log(
JSON.stringify(spaces(1)),
'\n',
JSON.stringify(spaces(5))
);