Write a function that accepts an array of 10 integers (between 0 and 9), that returns a string of those numbers in the form of a phone number.git
譯:編寫一個函數,該函數接受一個由 10 個整數組成的數組(在 0 到 9 之間),並以電話號碼的形式返回這些數字的字符串。github
例:正則表達式
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]); // => returns "(123) 456-7890"
複製代碼
(***) ***-****
String.prototype.replace()
方法中的第二個參數可使用 $n
來插入匹配的第 n
個括號匹配的字符串。注意:數組
n
爲非負整數,取值範圍爲 [1, 100)
function createPhoneNumber(numbers) {
return numbers.join('').replace(/(\d{3})(\d{3})(\d{4})/, '($1) $2-$3');
}
複製代碼
console.log(createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])); // "(123) 456-7890"
複製代碼
成功提交本身的答案後,能夠瀏覽別人的解,有最佳實踐和最聰明解(clever)。ide
function createPhoneNumber(numbers) {
numbers = numbers.join('');
return `(${numbers.substring(0, 3)}) ${numbers.substring(3, 6)}-${numbers.substring(6)}`
}
複製代碼
function createPhoneNumber(numbers) {
return numbers.join('').replace(/(...)(...)(.*)/, '($1) $2-$3');
}
複製代碼
個人解跟這個解相似,但此解兼容性更高一些。函數
function createPhoneNumber(numbers) {
var n = numbers;
return (
'(' +
n[0] +
n[1] +
n[2] +
') ' +
n[3] +
n[4] +
n[5] +
'-' +
n[6] +
n[7] +
n[8] +
n[9]
);
}
複製代碼
雖然不夠優雅,但有網友評論說這是最快的解。[攤手]測試
歡迎 starui
感謝開源,peace。spa