Можно ли запустить метод верхнего регистра на объекте? - PullRequest
5 голосов
/ 22 февраля 2012

У меня есть объект.Есть ли способ запустить toUppercase на всех его ключах?Я пытаюсь прописать каждый элемент в этом объекте в верхнем регистре

JSON.stringify(JSONObj.people).toUpperCase()

Я не получил вышеуказанную команду для меняЯ немного новичок в этом, поэтому ценю любую помощь!

1 Ответ

6 голосов
/ 22 февраля 2012
Object.withUpperCaseKeys = function upperCaseKeys(o) {
// this solution ignores inherited properties
    var r = {};
    for (var p in o)
        r[p.toUpperCase()] = o[p];
    return r;
}

Используйте этот метод для создания нового объекта с разными ключами:

JSONObj.people = Object.withUpperCaseKeys(JSONObj.people);

Если вы хотите изменить объект (изменить экземпляр), используйте

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...