我正在MongoDB / Node后端中使用一些分配结构分解,以处理一些后处理。我只是想了解这种解构的工作原理,如果是由多个元素组成的数组和嵌套数组,是否可以输入要定位的元素。
以下面的代码为例:
services: [
,
{
history: [...preSaveData]
}
]
} = preSaveDocObj;
我的假设是上述代码的“服务”中的“,”将默认为查看数组中的第一个元素。是吗?
现在,如果我有一个看起来像这样的文档结构(见下文),并且我知道我想定位“ services”元素等于“ typeTwo”的“ services”元素,我该怎么做?:
{
_id: 4d39fe8b23dac43194a7f571,
name: {
first: "Jane",
last: "Smith"
}
services: [
{
service: "typeOne",
history: [
{ _id: 121,
completed: true,
title: "rookie"
},
{ _id: 122,
completed: false,
title: "novice"
}
]
},
{
service: "typeTwo",
history: [
{ _id: 135,
completed: true,
title: "rookie"
},
{ _id: 136,
completed: false,
title: "novice"
}
]
}
]
}
如何编辑此代码(请参见下文)以专门定位“服务”等于“ typeTwo”的“服务”数组?
services: [
,
{
history: [...preSaveData]
}
]
} = preSaveDocObj;
答案 0 :(得分:1)
不要过度破坏,只find
:
const { history: [...preSavedData] } = doc.services.find(it => it.serice === "typeTwo");