2017-08-04 4 views
2

なぜコードブロックが出力文字列でないのですか?Array(1).join( 'str')の出力が空の理由

num = 1を渡すと、abcが表示されるはずです。

ここには何がありますか?

function repeatStringNumTimes(str, num) { 
 
    return Array(num).join(str); 
 
} 
 
console.log(repeatStringNumTimes("abc", 1));

+3

どのように使用すると、1つに参加することができます区切り文字を含む他の項目がない項目 – mplungjan

+0

@mplungjan私は今理解しています。どうもありがとう。 –

答えて

9

一つの要素は、単なる文字列に変換され、それがどのを必要としないので、あなたは、セパレータをArray#joinのために少なくとも2つの要素を必要とします。

function repeatStringNumTimes(str, num) { 
 
    return Array(num + 1).join(str); 
 
} 
 
console.log(repeatStringNumTimes("abc", 1));

-1

あなただけそうのように、ES6のString.repeatを使用し、n回繰り返される文字列が必要な場合は正しい方法は

str.repeat(num) 
2

次のようになります。

'myString'.repeat(repeatTimes);

またはアレイベースのソリューション(ただし、あなたの問題のために推奨されません):

new Array(repeatTimes).fill('myString').join('');

あなたはES5ソリューションが必要な場合は、repeat FN lodashを使用します。

_.repeat('abc', 2);

+0

フィルではIE – mplungjan

+1

はサポートされていません。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/fill – Denialos

+0

にあるpolyfillを使用するか、 Array(num + 1).join(str); ' – mplungjan

関連する問題