gpt4 book ai didi

javascript - 嵌套在 JSON 对象数组中的 JSON 对象数组

转载 作者:行者123 更新时间:2023-11-30 09:15:39 24 4
gpt4 key购买 nike

我有一个格式为 JSON 的对象数组

var employees = 
[
{
"employee1": "employee1",
"Details": [
{
"title": "Software Engineer",
"EmployeeId": 451
}
]
},
{
"employee2": "employee2",
"Details": []
},
{
"employee3": "employee3",
"Details": [
{
"title": "Test analyst",
"EmployeeId": 453
}
]
},
{
"employee4": "employee4",
"Details": [
{
"title": "Software engineer",
"EmployeeId": 487
},
{
"title": "Architect",
"EmployeeId": 500
}
]
}
]

获取 EmployeeId 的最佳方式是什么?

预期输出:

[451,453,487,500]

当我使用:

console.log(Object.assign({}, ...employees).Details.map(t=>t.EmployeeId))

返回结果为:

[487,500]

有没有办法在结果中连接其他员工 ID?

最佳答案

首先 - 它不是 JSON,只是一个数组。其次,像这样使用 flatMapmap:

var employees = [{
"employee1": "employee1",
"Details": [{
"title": "Software Engineer",
"EmployeeId": 451
}]
},
{
"employee2": "employee2",
"Details": []
},
{
"employee3": "employee3",
"Details": [{
"title": "Test analyst",
"EmployeeId": 453
}]
},
{
"employee4": "employee4",
"Details": [{
"title": "Software engineer",
"EmployeeId": 487
},
{
"title": "Architect",
"EmployeeId": 500
}
]
}
];

var ids = employees.flatMap(({ Details }) => Details.map(({ EmployeeId }) => EmployeeId));

console.log(ids);

没有 flatMap 的 Polyfill - 由 MDN's alternative 提供:

var employees = [{
"employee1": "employee1",
"Details": [{
"title": "Software Engineer",
"EmployeeId": 451
}]
},
{
"employee2": "employee2",
"Details": []
},
{
"employee3": "employee3",
"Details": [{
"title": "Test analyst",
"EmployeeId": 453
}]
},
{
"employee4": "employee4",
"Details": [{
"title": "Software engineer",
"EmployeeId": 487
},
{
"title": "Architect",
"EmployeeId": 500
}
]
}
];

var ids = employees.reduce((acc, { Details }) => acc.concat(Details.map(({ EmployeeId }) => EmployeeId)), []);

console.log(ids);

关于javascript - 嵌套在 JSON 对象数组中的 JSON 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55271288/

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