簡體   English   中英

如何將對象重組為特定格式的對象數組?

[英]How can I restructure object to Array of objects to a specific format?

我有這個對象,我想重組它,如下面所需的輸出所示。 IngriId在期望輸出僅僅是Date.now()我奮力重新安排這似乎是不可能給我。可這個被JavaScript這樣做,因為我很新的它,我很難找到它來實現?

輸入:

const Shopping = {
    "meatsOutput": [
      {
        "val": "Chicken breast"
      }
    ],
    "spicesOutput": [
      {
        "amount": "½ tsp",
        "val": "paprika"
      }
    ],
    "dairyOutput": [
      {
        "amount": "1/2 Cup",
        "val": "yogurt"
      },
      {
        "amount": "1/2 teaspoon",
        "val": "heavy cream"
      }
    ]
  }

期望輸出:

const ShoppingList = [
      {
          "data": [{
              "value": "Chicken breast",
              "ingrId": "202237423fm16787",
          }],
          "name": "meatsOutput",
      },
      {
          "data": [{
              "amount": "½ tsp",
              "value": "paprika",
              "ingrId": "20223742381r787",
          }],
          "name": "spicesOutput",
      },
      {
          "data": [{
              "amount": "1/2 Cup",
              "value": "yogurt",
              "ingrId": "202237423816787",
          }, ],
          "name": "dairyOutput",
      }
  ]

使用Object.entries ,您可以生成[key, value]對數組,然后使用Array.prototype.map ,您可以將該數組更改為您想要的結果。

 const input = { "meatsOutput": [{ "val": "Chicken breast" }], "spicesOutput": [{ "amount": "½ tsp", "val": "paprika" }], "dairyOutput": [{ "amount": "1/2 Cup", "val": "yogurt" }, { "amount": "1/2 teaspoon", "val": "heavy cream" } ] }; const result = Object.entries(input).map(([key, value]) => ({ name: key, data: value.map((item) => ({ ...item, ingrId: Date.now() })) })); console.log(result);

暫無
暫無

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

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