2017-02-21 5 views
0

Ich versuche, eine Funktion zu erstellen, die eine Zeichenfolge nimmt und eine Zeichenfolge zurückgibt, in der jedes Zeichen einmal wiederholt wird.Funktion zum Wiederholen von Buchstaben

Dies ist Code, den ich bisher habe:

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

Ich weiß, das ist falsch, aber ich kann nicht herausfinden, warum.

+0

Klingt wie Hausaufgaben zu mir, lol – Phil

+0

'return Split + Split;' 'nicht return Split + = split;'! Und 'str.split (''); 'nicht' str.split(); '! –

+0

Wie ist es falsch? Was macht es (oder nicht)? – j08691

Antwort

2

split und join beide brauchen ein Argument.

split('') und join('').

'abc'.split() gibt ['abc'] zurück, aber 'abc'.split('') gibt ['a','b','c'] zurück.

['a','b','c'].join() kehrt 'a,b,c' aber ['a','b','c'].join('') kehrt 'abc'

+1

bedeuten. Weder benötigt ein Argument – j08691

+0

@ j08691, standardmäßig '.join()' gleich '.join (',')' – Grundy

+1

Ja es tut. Der Standard für 'Join' ist' ',' '. '' abc'.join() 'gibt '' a, b, c '' nicht '' abc '' zurück. –

1

Ein anderer Weg, um es mit Array#join und String#split zu tun.

var str = 'homework'; 
 

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

+0

Dies beantwortet nicht die OP –

+0

@ChrisCharles Ich habe ihm nur einen einfacheren Weg vorgeschlagen, um es zu erreichen. –

0

Wird in alten Browsern laufen

function doubleChars(str) { 
    var chars = ""; 
    for (var i=0, n=str.split("").length; i<n; i++) { 
     chars += str[i] + str[i]; 
    } 
    return chars; 
} 
Verwandte Themen