Проверьте наличие ровно десяти целых цифр от 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 для проверки. Это форматирование по условию, а не проверка существования телефонного номера или международного плана нумерации.