@rd100

В чем причина ошибки 'expected "*\\n"' to equal '"*"'?

Пытаюсь протестировать функцию:

function christmasTree(height) {
  let result = '\n'; // А вообще здесь без \n, иначе в фидле не так отоброзится
  for(let i = 0; i < height; ++i) {
    result += ' '.repeat(height - i - 1);
    result += '*'.repeat(i * 2 + 1);
    result += '\n';
  }
  return result;
}

let xs = christmasTree(5);
console.log(xs);

Возвращает ошибку:
615a25e872b0f104425498.jpeg
  • Вопрос задан
  • 776 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Ожидается '*' в качестве результата, реально вы выдаёте '*\n'.

Лишний перенос строки в самом конце - тут лучше сделать массив, каждый элемент которого будет представлять отдельную строку результата, и склеить его в одну строку, типа .join('\n'). Ну и ещё пробелов не хватает после звёздочек.

Исправлено.
const christmasTree = length =>
  Array.from({ length }, (n, i) => (
    n = ' '.repeat(length - i - 1),
    n + '*'.repeat(i * 2 + 1) + n
  )).join('\n');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vabka
@vabka
Токсичный шарпист
То и значит. У тебя в строке лишние символы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы