forEach и функция map для перебора вложенных json массивов объектов и создания нового массива - PullRequest
1 голос
/ 21 апреля 2020
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);
});

1 Ответ

0 голосов
/ 21 апреля 2020

Вы можете использовать reduce вместе с map:

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 2",
        "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 2",
        "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 , ...r.uoms.map(u => u.unit_name)], []))
...