如何修改 JavaScript 对象名称?

Але*_*рин 2 javascript object jscript

在 JavaScript 中,我有以下代码:

var rights = {
    'One': [ 1, 1, 0],
    'Two': [ 1, 0, 0],
    'Three': [ 0, 1, 1 ]
};
Run Code Online (Sandbox Code Playgroud)

和印刷:

for (item in rights) Response.Write(item + ' = ' + rights[item] + '<br />');
Run Code Online (Sandbox Code Playgroud)

此外,我可以通过以下方式访问对象中的任何元素:

rights['One'] or rights[0]
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能遍历这个对象,使索引小写,使其变为如下:

var rights = {
    'one': [ 1, 1, 0],
    'two': [ 1, 0, 0],
    'three': [ 0, 1, 1 ]
};
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

您不能直接更改密钥。您可以获取键及其值,使用小写键值设置新键,然后删除原始键。

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
Run Code Online (Sandbox Code Playgroud)

工作演示:http : //jsfiddle.net/jfriend00/U9vFQ/