将对象值转换为大写

时间:2019-10-14 16:48:00

标签: javascript typescript javascript-objects

我有一个通过执行JSON.stringify(myObject)检索的对象

现在我想将所有值(不是键)都转换为大写。

如何在 TypeScript 中以最佳方式做到这一点?

myObj = {
  "name":"John",
  "age":30,
  "cars": [
    { "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
    { "name":"BMW", "models":[ "320", "X3", "X5" ] }
  ]
 } 

TO

 myObj = {
  "name":"JOHN",
  "age":30,
  "cars": [
    { "name":"FORD", "models":[ "FIESTA", "FOCUS", "MUSTANG" ] },
    { "name":"BMW", "models":[ "320", "X3", "X5" ] }
  ]
 } 

我已经看过这个了,但是也许有一个最好的方法来实现。 -> How to convert JSON string values to lowercase in Javascript?

1 个答案:

答案 0 :(得分:3)

只需对对象进行一次深层迭代,然后为字符串值调用toUpperCase()函数,如下所示:

var myObj = {
    "name": "John",
    "age": 30,
    "cars": [
        { "name": "Ford", "models": ["Fiesta", "Focus", "Mustang"] },
        { "name": "BMW", "models": ["320", "X3", "X5"] }
    ]
};

function iterate(obj) {
    for (var key in obj) {
        if (obj[key] !== null && typeof obj[key] === "object") {
            iterate(obj[key]);
        } else if (obj[key] !== null && typeof obj[key] === "string") {
            obj[key] = obj[key].toUpperCase();
        }
    }
}

iterate(myObj);
相关问题