簡體   English   中英

如何將 object 解析為 TS 中的數組?

[英]How to parse object to array in TS?

我必須解析 object,如下所示:

const obj = {
    "package": {
        "dependencies": {
            "a": "b",
            "c": "d"
        }
    }
}

到這種格式:

const data = {
    "package": [
        {
            "dependencies": [
                { key: "a", value: "b" },
                { key: "c", value: "d" }
            ]
        }
    ]
}

有人可以告訴我該怎么做嗎? 謝謝你的幫助!

這絕對是可能的。 在不了解用例的情況下,我覺得這種轉換可能會給您帶來更多問題。 無論如何,以下是實現這一目標的一種方法。

const obj = {
    "package": {
        "dependencies": {
            "a": "b",
            "c": "d"
        }
    }
}

const packageArray = {
  package: [
    {
     dependencies: Object.entries(obj.package.dependencies)
      .map(([key, value]) => ({[key]: value}))
    }

]
  

像這樣的東西應該工作:

const data = {...obj} // Copy the initial object
data.package.dependencies= Object.entries(obj.package.dependencies)
    .map(([key, value])=>({key,value}))

正如已經指出的, Object.entries + Array.prototype.map將提供所需的轉換:

const obj = {
    "package": {
        "dependencies": {
            "a": "b",
            "c": "d"
        }
    }
};
const data = {
    package: {
        dependencies: Object.entries(obj.package.dependencies).map(([key, value]) => ({key, value}))
    }
};
console.log(JSON.stringify(data, null, "  "));

Output:

{
  "package": {
    "dependencies": [
      {
        "key": "a",
        "value": "b"
      },
      {
        "key": "c",
        "value": "d"
      }
    ]
  }
}

TypeScript 操場鏈接在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM