jQuery for(x in y) loop

jQuery for(x in y) loop

本文关键字:loop in for jQuery      更新时间:2023-09-26

在下面的代码中,变量" key "不大写,即使任何其他变量,如steve[j],如果它们在调用函数capitaliseFirstLetter()中替换" 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)

字符串对象按值传递给函数。所以它不会改变你应该重新设计value

如果你的目的是把每个单词都大写,可以更简单地这样做:

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();
    });
}