【发布时间】:2019-08-11 18:26:17
【问题描述】:
我有一个 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 ......它不是......它是一个 javascript 对象,json 是一种数据交换字符串格式 - 你没有处理那个 - 你明白吗为什么你的尝试没有成功?
-
employees.map(m => m.Details.map(m => m.EmployeeId)).flat() -
@keith - 或
employees.flatMap(m => m.Details.map(m => m.EmployeeId)):p -
@JaromandaX 是的,
flatMap会更好,我将它保持在 2 个地图上,希望能将 OP 指向他失败的方向。 -
@Keith 有没有办法在不使用平面图或平面的情况下找到值?我在节点版本
标签: javascript arrays node.js json object