2017-10-12 4 views
0

私は機能pluralizeParam作成しようとしています(nは、単語を、pluralWord)javascriptで関数の中のパラメータの値を出力する方法は?これらの要件と

  • nが1である場合には、非複数のワード(パラメータワード)を返し、そうでない場合は、追加「複数の単語に "s"を付ける。
  • pluralWordパラメータが指定されている場合は、「s」を追加する代わりにpluralWordを返します。私がこれまで行ってきた何

は以下の通りです:

function returnPluralWord(n, word, pluralWord) { 
    if (n === 1) { 
     return word; 
    } else if (n === 1 && (word.lastIndexOf("s")) || (word.lastIndexOf("ess"))) { 
     return word + "s"; 
    } else if (n !== 1 && word.length - 2 === "es") { 
     return word + "s"; 
    } else if (pluralWord !== 'undefined') { 
     return pluralWord; 
    } 
} 

var result = returnPluralWord(2, "lioness", "lionesses"); 
console.log(result); 

私の問題がある:それはpluralWordを印刷していません。それ、どうやったら出来るの? ありがとう

+2

指定された部分で終わります。あなたはすでに 'n === 1 'を扱っていますが、それ以上の点では、4番目のケースを2番目に移動してください。 – DavidW

答えて

2

word.length - 2は決して"es"に等しいことはできません。あなたの文を再配置する必要もあり、第二は、すでにあなたは(私は思う間違ったロジックです)word.lastIndexOf('s')を使用する場合、それはsに終了した場合、それはs文字の最後のインデックスを返し、ない1

によってcatchedされます。

あなたがString#endsWithString#startsWith方法を確認することができ、これらのものは、文字列を開始するかどうかを確認またはあなたの第二の条件が実行されません

const str = 'less'; 
 
console.log(str.endsWith('s'))

関連する問題