gpt4 book ai didi

javascript - 在 JavaScript 中获取深度嵌套对象中对象的完整路径

转载 作者:行者123 更新时间:2023-12-02 23:55:23 26 4
gpt4 key购买 nike

我的源数组如下所示:

    arr =[
{
"dimensionId": 1,
"dimensionName": "dimensionName1",
"components": [
{
"componentId": 1,
"componentName": "componentName1",
"indicators": [
{
"indicatorId": 1,
"indicatorName": "indicatorName1"
},
{...}
]
},
{...}
]
},
{...}
];

当我尝试使用 .filter 和 .map 通过 'indicatorId' 搜索最深层嵌套的对象时,它返回如下对象:

{
"indicatorId": 1,
"indicatorName": "indicatorName1"
}

我需要做的是在遍历其子级时也跟踪父级的属性。期望的输出将是这样的:

{
"dimensionId": 1,
"dimensionName": "dimensionName1",
"componentId": 1,
"componentName": "componentName2",
"indicatorId": 1,
"indicatorName": "indicatorName3"
}

有没有办法递归地执行此操作? 编辑:id 在整个数组中不是唯一的

最佳答案

您可以循环遍历并在找到时返回。

arr =[
{
"dimensionId": 1,
"dimensionName": "dimensionName1",
"components": [
{
"componentId": 2,
"componentName": "componentName2",
"indicators": [
{
"indicatorId": 3,
"indicatorName": "indicatorName3"
},
{
"indicatorId": 3.1,
"indicatorName": "indicatorName31"
},
]
}
]
},
];

let out = {}
arr.forEach(({dimensionId, dimensionName, components}) => {
components.forEach(({indicators, componentId, componentName}) => {
let found = indicators.find(({indicatorId}) => indicatorId === 3);
if (found) {
out = {dimensionId, dimensionName, componentId, componentName, ...found};
return;
}
});
})

console.log(out)

关于javascript - 在 JavaScript 中获取深度嵌套对象中对象的完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55416543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com