2011-11-19 56 views
1

對於我的實驗室作業,練習的一部分要求我將函數添加到已存在的字符串中,該字符串計算字符串中特定字符的出現次數,然後返回伯爵。計算字符串和格式化字符串中的出現次數:顯示結果

這裏的功能:

var string; 
var i; 
var count=0; 

string="Jose lived in San Jose for many years"; 

string.prototype.countOccurrences = function countOccurrences(thechar){ 
for(i = 0; i < this.length; i++){ 
    if(this.charAt(i) == thechar){ 
     count++; 
     } 
    } 
return count; 
} 

我與練習遇到的問題是顯示的結果。我正在計算並顯示字符串中字母'e'的出現次數。這是我一直在使用的,但是當我運行它時,程序的其餘部分會消失。

document.write("There are " + string.countOccurrences("e") + "e's in this string"); 

有人可以指出我正確的方向嗎?

回答

1

當前,您有string作爲變量。因此,設置原型的方法將不會執行任何操作。您需要在String課上設置它。

String.prototype.countOccurrences = function(thechar) { 
    var i; 
    var count=0; 
    for(i = 0; i < this.length; i++){ 
     if(this.charAt(i) == thechar){ 
      count++; 
     } 
    } 
    return count; 
}; 

var string = "Jose lived in San Jose for many years"; 
document.write("There are " +string.countOccurrences("e")+ "e's in this string"); 
+0

William,我試着改變原型的類的大小寫,但是我似乎在運行程序時得到了相同的結果,沒有任何顯示。 – user1054873

+0

'==='而不是'=='。你不想啓用類型強制。 –

+0

將函數聲明放在變量的上方。它應該工作。如果沒有,你可能會在代碼中的其他地方出現錯誤。 [http://jsfiddle.net/6W4LS/](http://jsfiddle.net/williamvanr/6W4LS/) – Will

相關問題