【发布时间】:2017-12-24 18:51:16
【问题描述】:
我从一个 API 收到多个 JSON(17 个 API 调用 Promise.all())。例如
[
{
key: value,
key: value,
key: value,
key: value,
values: [
{
key: value,
key: value,
key: value,
keyIWant: value
}
{
key: value,
key: value,
key: value,
keyIWant: value
}
{
key: value,
key: value,
key: value,
keyIWant: value
}
]
}
{
key: value,
key: value,
key: value,
key: value,
values: [
{
key: value,
key: value,
key: value,
keyIWant: value
}
{
key: value,
key: value,
key: value,
keyIWant: value
}
{
key: value,
key: value,
key: value,
keyIWant: value
}
]
}
{
key: value,
key: value,
key: value,
key: value,
values: [
{
key: value,
key: value,
key: value,
keyIWant: value
}
{
key: value,
key: value,
key: value,
keyIWant: value
}
{
key: value,
key: value,
key: value,
keyIWant: value
}
]
}
]
而且我真的不知道要获得我想要的密钥(并以更通用的方法获得它)。到目前为止,我的尝试已经
static _findKey(nestedData) {
const result = [];
const buffer = [];
for (const prop in nestedData) {
const value = nestedData[prop];
if (typeof value === "object") {
buffer.push(Class._findKey(value));
}
if (prop === "keyIWant") { // key would be an argument from the function if it'd worked
result.push(value); // doesn't work because of recursive call?
}
}
return result;
}
和
static _findKey(projects) { //
return projects.forEach(project => {
return project.values.forEach(projectValue => {
return projectValue.key;
});
});
}
您还有其他想法吗?我仍在学习 JavaScript,因此想要一个干净而全面的解决方案,但无法自己构建。
【问题讨论】:
-
如果你知道路径为什么不使用 lodash 过滤并得到你需要的东西? Example here on this post
-
我知道这个特定示例的路径,但可能还有其他示例我不知道路径。我的目标是构建一个通用函数以始终重用它,只需将键作为参数并获取所有相应的值
标签: javascript node.js ecmascript-6