我可以在对象上运行大写方法吗?

ast*_*tle 5 javascript object

我有一个对象.有没有办法在其所有键上运行toUppercase?我正在做的是尝试大写这个对象中的每个元素

JSON.stringify(JSONObj.people).toUpperCase()
Run Code Online (Sandbox Code Playgroud)

我没有得到上述命令为我工作.我对此有点新意,所以感谢任何帮助!

Ber*_*rgi 6

Object.withUpperCaseKeys = function upperCaseKeys(o) {
// this solution ignores inherited properties
    var r = {};
    for (var p in o)
        r[p.toUpperCase()] = o[p];
    return r;
}
Run Code Online (Sandbox Code Playgroud)

使用此方法创建具有不同键的对象:

JSONObj.people = Object.withUpperCaseKeys(JSONObj.people);
Run Code Online (Sandbox Code Playgroud)

如果要更改对象(修改实例),请使用

Object.upperCaseKeys = function upperCaseKeys(o) {
// this solution ignores inherited properties
    for (var p in o)
        if (p.toUpperCase() != p) {
            p[p.toUpperCase()] = o[p];
            delete o[p];
        }
    return o; // just for easier chaining
}

Object.upperCaseKeys(JSONObj.people);
Run Code Online (Sandbox Code Playgroud)