JavaScript:使用三種方法生成重覆的字元串,1.遞歸,三元表達式。2.數組的join()。3.ES6 repeat(). ...
看到一個題目要求寫一個函數times,輸出str重覆num次的字元串。
比如str:bac num:3
輸出:abcabcabc
除了利用迴圈還有幾種方法,我學習研究之後記下以下三種方法。
1. 遞歸,結合三元表達式更簡潔。
2. 數組的 join() 方法。
3. ES6的 repeat() 方法。ES6目前沒有全部相容。
我最喜歡第一種,因為用的都是最基本的語法,沒有另外調用方法。
python可以 str*num ,最先誤以為js也行,驗證了。。。不行 Orz。。。
以下為三種方式代碼:
1 //三元表達式+遞歸 2 function times(str, num){ 3 return num > 1 ? str += times(str, --num): str; 4 } 5 console.log(times('abc', 3)); 6 7 //數組方法 8 // 另外可用call()改變Array原型鏈上join()方法的對象並指向String 9 function times2(str, num){ 10 return new Array(num+1).join(str); 11 } 12 console.log(times2('abc', 3)); 13 14 //ES6 repeat() 15 function times3(str, num) { 16 return num > 1 ? str.repeat(num): str; 17 } 18 console.log(times3('abc', 3));