簡體   English   中英

jQuery for(x在y)循環

[英]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)

字符串對象按值傳遞給函數。 所以這並沒有改變,您應該重新分配價值

如果您的目標是將每個單詞都大寫,則可以更簡單地完成以下操作:

JSFiddle: http : //jsfiddle.net/UgT3x/

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM