我想通过迭代访问嵌套的 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: [{}, {}, {}, {}]
空数组。
首先你的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' ] }
]