【问题标题】:Convert object Values to upper case将对象值转换为大写
【发布时间】:2020-02-11 07:49:20
【问题描述】:

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

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

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

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

 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. TypeScript 本身不会“做”任何事情。它将代码编译为 JavaScript 并确保编译时的类型安全。它还添加了一些仍然可以解析为普通 JS 的额外语法。基本上,您需要 JavaScript 代码来执行此操作。 2. 你拥有的是不是 JSON。你有一个普通的 JavaScript 对象。 JSON 是一种文本序列化格式 - 每个 JSON 都是一个字符串。 3. 你永远不会在你的代码中使用JSON.stringify。你只有一个普通的 JS 对象——因为它不是一个字符串,所以它没有通过JSON.stringify 调用。

标签: javascript typescript javascript-objects


【解决方案1】:

只需对您的对象进行深度迭代,然后为字符串值调用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2018-07-15
    相关资源
    最近更新 更多