我正在嘗試爲Google文檔電子表格創建一個自定義函數。我覺得這是一個非常簡單的問題,而且我很快就擺脫了我的深度。 請幫幫我。一個正確的方向將非常感激。TypeError:無法調用未定義的方法「替換」
的googledocs腳本編輯器給出了這樣的錯誤:
TypeError: Cannot call method "replace" of undefined. (line 50)
對於此代碼:
function replaceGender(name, gender, comment) {
var genderedComment = String();
var name;
var gender;
var comment;
if(gender == "m")
{
genderedComment = ungenderedComment.replace("(name)", name).replace(/\(He\/She\)/g,"He").replace(/\(His\/\Her\)/g,"His").replace(/\(his\/\her\)/g,"his").replace(/\(him\/\her\)/g,"him").replace(/\(he\/\she\)/g,"he");
}
else
{
genderedComment = ungenderedComment.replace("(name)", name).replace(/\(He\/She\)/g,"She").replace(/\(His\/\Her\)/g,"Her").replace(/\(his\/\her\)/g,"her").replace(/\(him\/\her\)/g,"her").replace(/\(he\/\she\)/g,"she");
}
return genderedComment;
};
我認爲它很容易,但我做錯了什麼。
我已經更改了代碼,現在它的工作原理沒有錯誤,但最後的.replace(/\(he\/\she\)/g,"she");
和.replace(/\(he\/\she\)/g,"he");
不能代替。不知道... 再次感謝您的所有幫助...正如我所說的即時通訊學習很多。
這裏現在
function replaceGender(name, gender, comment) {
if(gender == "m")
{
comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"He").replace(/\(His\/\Her\)/g,"His").replace(/\(his\/\her\)/g,"his").replace(/\(him\/\her\)/g,"him").replace(/\(he\/\she\)/g,"he");
}
else if(gender == "f")
{
comment = comment.replace(/\(name\)/g, name).replace(/\(He\/She\)/g,"She").replace(/\(His\/\Her\)/g,"Her").replace(/\(his\/\her\)/g,"her").replace(/\(him\/\her\)/g,"her").replace(/\(he\/\she\)/g,"she");
}
return comment;
};
變量'ungenderedComment'未定義。這意味着你不能像字符串一樣通過調用字符串函數來處理它。您應該首先進行測試以確保其已定義。您應該檢查以確保它不是未定義的,或者在代碼中添加一個「else if」。實際上,正如PaulHoencke指出的,你可能完全使用了錯誤的變量! – jahroy 2013-02-14 02:43:08
除非有一些代碼沒有顯示,'ungenderedComment'沒有定義,就像錯誤說的那樣。 – 2013-02-14 02:43:14
看起來也許你應該用'comment'替換'ungenderedComment',因爲這是函數參數的名字。 – 2013-02-14 02:45:48