forEach和map函数迭代对象的嵌套json数组并创建一个新数组

问题描述 投票:0回答:1
var res=[
      {
         "id":1,
         "type_name":"Weight",
         "type_abbr":"wt",
         "uoms":[
            {
               "id":1,
               "unit_abbr":"sh tn",
               "unit_name":"Short Tons",
               "created_at":"2017-06-07 00:35:06",
               "updated_at":"2018-05-24 23:34:25",
               "uom_type_id":1
            },
            {
               "id":3,
               "unit_abbr":"g",
               "unit_name":"Grams",
               "created_at":"2017-06-07 00:35:06",
               "updated_at":"2018-05-24 23:34:25",
               "uom_type_id":1
            }
         ]
      }
   ]

我正在尝试遍历每个结果并获取嵌套的uoms.unit_name并将它们注入到新数组中。下面是我的非工作代码。预先谢谢你。

res.forEach((uom) => {
  const uomsArr = uom.uoms.map(uoms => uoms.uoms);
});
json multidimensional-array ecmascript-6
1个回答
0
投票

您可以使用reduce

var res = [{
    "id": 1,
    "type_name": "Weight",
    "type_abbr": "wt",
    "uoms": [{
        "id": 1,
        "unit_abbr": "sh tn",
        "unit_name": "Short Tons",
        "created_at": "2017-06-07 00:35:06",
        "updated_at": "2018-05-24 23:34:25",
        "uom_type_id": 1
      },
      {
        "id": 3,
        "unit_abbr": "g",
        "unit_name": "Grams",
        "created_at": "2017-06-07 00:35:06",
        "updated_at": "2018-05-24 23:34:25",
        "uom_type_id": 1
      }
    ]
  },
  {
    "id": 2,
    "type_name": "Weight",
    "type_abbr": "wt",
    "uoms": [{
        "id": 11,
        "unit_abbr": "sh tn",
        "unit_name": "Short Tons",
        "created_at": "2017-06-07 00:35:06",
        "updated_at": "2018-05-24 23:34:25",
        "uom_type_id": 11
      },
      {
        "id": 31,
        "unit_abbr": "g",
        "unit_name": "Grams",
        "created_at": "2017-06-07 00:35:06",
        "updated_at": "2018-05-24 23:34:25",
        "uom_type_id": 31
      }
    ]
  }
]

console.log(res.reduce((a, r) => [...a.concat(r.uoms)], []))
© www.soinside.com 2019 - 2024. All rights reserved.