現在提供了一個包含10個整數(0-9)的數組,要求傳回指定格式的電話號碼字串。
像這樣:
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) // => returns "(123) 456-7890"
這些數字一定要按照出現的順序來,另外別忘了特殊符號和空格!
說實話,第一次看到這個題目,我是有點小看了,很快給出了通俗的解法。
不就是數組轉字串截取,再做拼接嘛吧!
這電話號碼由三部分組成,區號,前半部分,後半部分:
function createPhoneNumber(numbers){ var areaCode = numbers.slice(0,3).join(""); var firstPart = numbers.slice(3,6).join(""); var secondPart = numbers.slice(6).join(""); return "(" + areaCode + ") " + firstPart + "-" + secondPart; }
這樣做,是最直接的方法,但也是通用性,可擴展性最差的解法。
假如區號是4位,電話號碼是8位,該怎麼辦?那不是要改動好幾個地方?
最好,是給一個通用的字串模版,按模版來給定。
好咧,既然想到了這一步,那就來看看一位大牛的寫法吧!
function createPhoneNumber(numbers){ var format = "(xxx) xxx-xxxx"; for(var i = 0; i < numbers.length; i++){ format = format.replace('x', numbers[i]); } return format; }
嗯,這樣就好多了。
以上就是 JavaScript趣題:創建電話號碼的內容,更多相關內容請關注PHP中文網(www.php.cn)!