I持ってNode.jsの中に次のオブジェクトとlodash「クエリ」(私は単純に、端末にnode
を実行している):Lodashリターン配列は、パスが有効な場合
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'
私の質問は次のとおりです。パスが有効であると判明した値の配列を返す方法はありますか?
例:私はこれが最も効率的になるか、あなたが必要なものが、 はあなたには、いくつかの条件が有効である場合は、配列を作成するために_.eachまたは_.mapを使用することができるかどうか知らない
> _.get(obj, "a[].b[].c")
['apple', 'pineapple']
あなたは、特定のパスの結果の配列、何かが '[0] .b'取得したいですか?質問に記載されているように、または任意のパス? – alexmac
jsonpathを見てください。 https://github.com/dchester/jsonpath – Tomalak
@ Tomalakの助言に感謝します。 'jsonpath.query(obj、 '$ .a [*] .b [*]。c');' – shaochuancs