2017-02-23 2 views
0

単語が子音クラスターで始まる場合を除いて、私は豚ラテン翻訳者のための機能を持っています(>子音>)javascriptの豚ラテン翻訳者が余分なカンマを挿入するのはなぜですか?

function translatePigLatin(str) { 
    var firstVowel = str.indexOf(str.match(/[aeiou]/)); 
    if (firstVowel===0){ 
    return str + "way"; 
    } 
    else { 
    var charArray = str.split(""); 
    return charArray.slice(firstVowel, str.length).join("") + charArray.slice(0, firstVowel) + "ay"; 
    } 
} 

translatePigLatin("california") "aliforniacay" を返す必要があり、かつ行います

は、ここに私の機能です。

translatePigLatin("glove")は "oveglay"を返しますが、 "oveg、lay"を返します。

コンマはどこから来ていますか?

+1

2番目の '.slice'から' .join( "") 'が見つかりません – JJJ

+0

ヒント:これは配列をストリング化するためです。 – robertklep

+0

@robertklepこれは間違ったアプローチですか?何が良いでしょうか? –

答えて

1

文字列を配列に分割する必要があると私は信じています。次はあなたのニーズを満たすだろう?:

function translatePigLatin(str) { 
 
    var firstVowel = str.indexOf(str.match(/[aeiou]/)); 
 
    return str.slice(firstVowel) + str.slice(0, firstVowel) + "ay"; 
 
} 
 
console.log(translatePigLatin("california")) 
 
console.log(translatePigLatin("glove"))

+0

はい、それはそれを行う良い方法です –

1

興味深いことに、カンマがarray + "string"操作から来ています。あなたのケースでは

console.log([1,2] + "string") // Returns '1,2string'

- あなたは(charArray.slice(0, firstVowel))の配列を第二に参加していません。

関連する問題