2017-02-21 11 views
0

文字列を受け取り、各文字が1回繰り返される文字列を返す関数を作成しようとしています。文字を繰り返す機能

これは私がこれまで持っているコードです:

function doubleChar(str) { 
    var split = str.split(); 
    var repeat = split.map(function (split) { 
     return split += split; 
    });  
    var n = repeat.join(); 
    return n; 
} 

私は、これは間違っている知っているが、私は理由を把握することはできません。

+0

を実行しますスプリット – Phil

+0

'リターンスプリット+笑、私には宿題のような音;' '+ =スプリットスプリットを返しません;'!そして 'str.split( ''); 'not 'str.split(); '! –

+0

どのように間違っていますか?それは何をしている(またはしていない)のですか? – j08691

答えて

2

splitjoinの両方に引数が必要です。

split('')およびjoin('')

'abc'.split()は、['abc']ですが、'abc'.split('')は、['a','b','c']を返します。

['a','b','c'].join()戻り'a,b,c'しかし['a','b','c'].join('')戻り'abc'

+1

デフォルトでは' .join() 'は' .join('、 ')と同等です。 – j08691

+0

@ j08691はありません。 – Grundy

+1

はいします。 'join 'のデフォルトは''、 ''です。 '' abc '.join() 'は' 'abc' 'ではなく' 'a、b、c' 'を返します。 –

1

Array#joinString#splitでそれを行う別の方法。

var str = 'homework'; 
 

 
console.log(str.split('').map(v => v.repeat(2)).join(''));

+0

これはOPには答えません –

+0

@ChrisCharles私は彼にそれを達成するためのより簡単な方法を提案しました。 –

0

古いブラウザで

function doubleChars(str) { 
    var chars = ""; 
    for (var i=0, n=str.split("").length; i<n; i++) { 
     chars += str[i] + str[i]; 
    } 
    return chars; 
} 
関連する問題