如何在React js中访问数组内嵌套的json对象

问题描述 投票:0回答:1

我想通过迭代访问嵌套的 JSON 对象值。这是我从查询中得到的数据:

{"_id":"654d4224fb04863b8eb89200","firms":[{"_id":["65423d5c240388c1594e7b7b"],"name":["Camaro Coiled Tubing"]}]}
{"_id":"654d4224fb04863b8eb8920d","firms":[{"_id":["65423d5c240388c1594e7b82"],"name":["DANCO Coiled Tubing"]}]}
{"_id":"654d4224fb04863b8eb8921b","firms":[{"_id":["65423d5c240388c1594e7b7d"],"name":["San Joaquin Bit"]}]}

我想创建第二个仅包含公司和名称的数组,并尝试了以下操作:

      vendorList.forEach(function (d) {
        vendorArray.push({
          id: d.firms._id,
          name: d.firms.name,
        });
      });

我的输出如下所示:

Vendor List:  [{}, {}, {}, {}]

空数组。

javascript json
1个回答
0
投票

首先你的vendorList数组是错误的。

let vendorList = [{"_id":"654d4224fb04863b8eb89200","firms":[{"_id":["65423d5c240388c1594e7b7b"],"name":["Camaro Coiled Tubing"]}]},
{"_id":"654d4224fb04863b8eb8920d","firms":[{"_id":["65423d5c240388c1594e7b82"],"name":["DANCO Coiled Tubing"]}]},
{"_id":"654d4224fb04863b8eb8921b","firms":[{"_id":["65423d5c240388c1594e7b7d"],"name":["San Joaquin Bit"]}]}]

然后进行与您的代码相同的遍历,但 id 和 name 是公司的第一个索引,因此根据它进行了更改。

let vendorArray = [];
vendorList.forEach((vendor) => {
    vendorArray.push({
        id: vendor.firms[0]._id,
        name: vendor.firms[0].name,
    })
})

最终输出:

[
  {
    id: [ '65423d5c240388c1594e7b7b' ],
    name: [ 'Camaro Coiled Tubing' ]
  },
  {
    id: [ '65423d5c240388c1594e7b82' ],
    name: [ 'DANCO Coiled Tubing' ]
  },
  { id: [ '65423d5c240388c1594e7b7d' ], name: [ 'San Joaquin Bit' ] }
]
© www.soinside.com 2019 - 2024. All rights reserved.