Преобразование массива цифр в телефонный номер

Проверьте наличие ровно десяти целых цифр от 0 до 9, объедините их и вставьте скобки, пробел и дефис в фиксированных позициях.

Короткий ответ

Что ответить на собеседовании

Проверьте наличие ровно десяти целых цифр от 0 до 9, объедините их и вставьте скобки, пробел и дефис в фиксированных позициях.

Подробный разбор

Ответ с пояснениями

Условие

Напишите функцию, которая получает массив из десяти цифр (каждая от 0 до 9) и возвращает строку, представляющую телефонный номер в виде "(XXX) XXX-XXXX".

function createPhoneNumber(digits) {
    // реализация
}

Ответ

Проверьте наличие ровно десяти целых цифр от 0 до 9, объедините их и вставьте скобки, пробел и дефис в фиксированных позициях.

function createPhoneNumber(digits) {
  if (!Array.isArray(digits) || digits.length !== 10 ||
      !Array.from(digits).every(x => Number.isInteger(x) && x >= 0 && x <= 9)) {
    throw new TypeError('Ожидаются десять цифр');
  }
  const text = digits.join('');
  return `(${text.slice(0, 3)}) ${text.slice(3, 6)}-${text.slice(6)}`;
}

Например, [1,2,3,4,5,6,7,8,9,0] даёт (123) 456-7890. Array.from делает пропуски массива видимыми как undefined для проверки. Это форматирование по условию, а не проверка существования телефонного номера или международного плана нумерации.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее