JavaScript趣題:Jaden Smith

Jaden Smith,Will Smith之子,是一位影視明星。

2010年主演瞭《功夫夢》,2013年主演瞭《重返地球》。

他最讓人感興趣的除瞭電影,還有他的Twitter,習慣在寫Twitter的時候,大寫每一個單詞的首字母。

你的任務是將字符串轉換成Jaden Smith式風格的,這些字符串確實是引用他的話,但沒有每個單詞首字母大寫。

例如:

 

Not Jaden-Cased: "How can mirrors be real if our eyes aren't real"
Jaden-Cased:     "How Can Mirrors Be Real If Our Eyes Aren't Real"

好,既然想要單詞首字母大寫,咋們就先擴展一個這樣的方法:

 

 

if(typeof String.prototype.capitalizeFirst === "undefined"){
    String.prototype.capitalizeFirst = function(){
        return this.slice(0,1).toUpperCase() + this.slice(1);
    };
}

有瞭這個方法,再看具體的思路。

 

1.先將字符串按空格分割,打散成數組。

2.對數組每一個元素,也就是單詞,調用我們剛剛編寫的首字母大寫方法。

3.將數組重新聚合成字符串,返回。

在這裡,我使用瞭ES5的map方法,它剛好能做到上面的第二點。

 

String.prototype.toJadenCase = function () {
    return this.split(" ").map(function(e){
        return e.capitalizeFirst();
    }).join(" ");
};

發佈留言