【发布时间】:2017-08-29 14:45:42
【问题描述】:
我在 Node.js 中有以下对象和 lodash“查询”(我只是在终端中运行 node):
var obj = {
a: [{
b: [{
c: "apple"
},
{
d: "not apple"
},
{
c: "pineapple"
}]
}]
};
> _.get(obj, "a[0].b[0].c")
'apple'
> _.get(obj, "a[0].b[1].c")
undefined
> _.get(obj, "a[0].b[2].c")
'pineapple'
我的问题是:有没有办法返回一个值数组,其中路径被发现是有效的?
例子:
> _.get(obj, "a[].b[].c")
['apple', 'pineapple']
【问题讨论】:
-
你想得到特定路径的结果数组吗,
a[0].b?还是您在问题中提供的任何路径? -
查看jsonpath。 github.com/dchester/jsonpath
-
感谢@Tomalak 的建议。这个任务使用 jsonpath 会很容易:
jsonpath.query(obj, '$.a[*].b[*].c'); -
感谢@Tomalak 和 shaochuancs,我得到了我想要的。如果你们中的一个人将其作为答案提交,我将不胜感激。
-
自己写答案——你已经有了工作代码,所以你需要做的就是复制它,写一个简短的段落,你就完成了。我会投票,每个人都赢了。 :)
标签: javascript node.js lodash