【发布时间】:2021-04-22 22:59:04
【问题描述】:
我正在使用 Nodejs,并且有一个对象包含一组对象(API 请求的结果)和一个简单的值数组。
它们看起来像这样:
// Object > Array > Objects (retrieved from an API request) :
{
"data": [
{
"id": 1,
"name": "Jimmy"
},
{
"id": 825,
"name": "Billy"
},
]
}
// Simple array :
[1, 825, …]
如何将包含对象数组的对象与简单数组进行比较?
我正在寻找的是,从简单数组中获取 ID,并将它们与其他“复杂”对象进行比较,以检索 name 属性与简单数组中的相应 ID 和其他对象属性 id ,然后将结果存储在对象数组中。
简单地说,我想要这样的结果:
[
{ id: 1, name: "Jimmy" },
{ id: 825, name: "Billy" }
]
由于从 API 请求中检索到“复杂”对象,我尝试了以下操作:
const ids = await axios.get(/* API CALL */);
for (let i in ids.data) {
ids.data[i].map(el => console.log(el.name));
}
但这给了我一个错误,说我不能map ids.data[i],即使当我console.log(ids.data[i]) 时,我还是从初始对象到达内部数组。
我也尝试直接使用.map() 而不使用for ... in 循环,但这也不起作用。也尝试了reduce,但结果相同。
我应该如何处理这个问题?请注意,来自 API 的响应是一个对象包含一个包含数千个对象的数组。
非常感谢
【问题讨论】:
-
ids.data[i]应该是来自data的单个对象,对吧?你试过用ids.data.map替换outer for吗?
标签: javascript node.js arrays