[英]jQuery for(x in y) loop
在下面的代碼中,即使將任何其他變量(例如steve [j])替換為對函數capitaliseFirstLetter()
的調用中的“ key
”,變量“ key
”也不大寫。
有人可以告訴我為什么嗎?
for(key in aray) {
steve = aray[key];
for(j = 0; j < steve.length; j++){
diff = steve[j].slice(key.length);
if(diff == ""){
diff = "_";
}
diffs.push(diff);
var firstLetterUpper = /^[A-Z]/.test(steve[j]);
if(firstLetterUpper){
capitaliseFirstLetter(key)
alert(key])
}
}
}
function capitaliseFirstLetter(string){
return string.charAt(0).toUpperCase() + string.slice(1);
}
key = capitaliseFirstLetter(key)
alert(key)
字符串對象按值傳遞給函數。 所以這並沒有改變,您應該重新分配價值
如果您的目標是將每個單詞都大寫,則可以更簡單地完成以下操作:
for (key in aray) {
var steve = aray[key];
console.log(toTitleCase(steve));
// if you want to change the aray value
aray[key] = toTitleCase(steve);
}
function toTitleCase(str) {
return str.replace(/\w\S*/g, function (txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.