Код Senior Реализация с нуля обновлено

Геттер и сеттер полного имени

Условие

createPerson(first, last) возвращает объект с полями firstName, lastName и свойством fullName: чтение собирает имя из двух полей, запись строки вида «Имя Фамилия» раскладывает её обратно. Фамилия может отсутствовать - тогда она пустая.

Что проверяют тесты

  • чтение

  • запись раскладывает

  • без фамилии

  • лишние пробелы

  • нет бесконечной рекурсии

Как подойти

В исходном решении из сборника в сеттере стояло this.fullName = first - это рекурсивный вызов самого сеттера и мгновенное переполнение стека. Ловушка настолько типичная, что её стоит держать в голове как отдельное правило: аксессор никогда не пишет в своё же имя. Деструктуризация с значением по умолчанию закрывает случай без фамилии, trim и split по /\s+/ - лишние пробелы.

Подсказки: 3
  1. Сеттер должен писать в firstName и lastName, а не в fullName.
  2. Присваивание this.fullName внутри сеттера fullName вызовет сам сеттер.
  3. Разделять надо по любому числу пробелов.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.