admin管理员组

文章数量:1399887

In JavaScript I have following code:

var rights = {
    'One': [ 1, 1, 0],
    'Two': [ 1, 0, 0],
    'Three': [ 0, 1, 1 ]
};

And printing:

for (item in rights) Response.Write(item + ' = ' + rights[item] + '<br />');

Also, I can access any element in object by this:

rights['One'] or rights[0]

But how can I iterate through this object makeing indexes lowercased so that it bees as follows:

var rights = {
    'one': [ 1, 1, 0],
    'two': [ 1, 0, 0],
    'three': [ 0, 1, 1 ]
};

In JavaScript I have following code:

var rights = {
    'One': [ 1, 1, 0],
    'Two': [ 1, 0, 0],
    'Three': [ 0, 1, 1 ]
};

And printing:

for (item in rights) Response.Write(item + ' = ' + rights[item] + '<br />');

Also, I can access any element in object by this:

rights['One'] or rights[0]

But how can I iterate through this object makeing indexes lowercased so that it bees as follows:

var rights = {
    'one': [ 1, 1, 0],
    'two': [ 1, 0, 0],
    'three': [ 0, 1, 1 ]
};
Share Improve this question asked Mar 22, 2013 at 6:17 Александр ЛаринАлександр Ларин 311 silver badge3 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 5

You can't directly change a key. You can get the key and its value, set a new key with lowercase key value and then remove the original key.

var rights = {
    'One': [ 1, 1, 0],
    'Two': [ 1, 0, 0],
    'Three': [ 0, 1, 1 ]
};

for (var key in rights) {
    var keyLower = key.toLowerCase();
    // if key is not already lower case
    if (keyLower !== key) {
        var temp = rights[key];
        delete rights[key];
        rights[keyLower] = temp;
    }
}

// all keys in the rights object will now be lowercase

Working demo: http://jsfiddle/jfriend00/U9vFQ/

var fieldNames = [];
for (item in rights) { fieldNames.push(item); }
for(i = 0; i < fieldNames.length; i++) {
    var fieldName = fieldNames[i];
    var value = rights[fieldName];
    delete rights[fieldName];

    rights[fieldName.toLowerCase()] = value;    
}
for (var key in rights) {

key = key.toLowerCase();

}

here is fiddle: http://jsfiddle/btevfik/JBAXr/


ok this doesn't actually update the key. just gives you the key in lowercase.

本文标签: How to modify JavaScript object nameStack Overflow