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
3 Answers
Reset to default 5You 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.