2017-10-12 88 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',但更重要的是,將你的第四個案例放在第二個位置。 – DavidW

回答

2

word.length - 2永遠不能等於"es"。您也需要重新安排你的報表,第二個已經被1

逮住當您使用word.lastIndexOf('s')(這是錯誤的邏輯,我認爲),它返回s字符的最後一個索引,如果沒有它s結束。

您可以檢查String#endsWithString#startsWith方法,這些的檢查字符串的開始或給定的部分

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

相關問題