Tôi có đối tượng và lodash "truy vấn" sau trong Node.js (tôi chỉ đơn giản là chạy node
trong terminal):Lodash trở lại mảng các giá trị nếu con đường là hợp lệ
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'
Câu hỏi của tôi là: Có cách nào để trả về một mảng các giá trị mà đường dẫn được tìm thấy là hợp lệ không?
Ví dụ:
> _.get(obj, "a[].b[].c")
['apple', 'pineapple']
Bạn có muốn để có được mảng kết quả cho các đường dẫn cụ thể, một cái gì đó 'a [0] .b'? Hoặc bất kỳ con đường nào, như bạn đã cung cấp trong câu hỏi? – alexmac
Nhìn vào jsonpath. https://github.com/dchester/jsonpath – Tomalak
Nhờ lời khuyên của @ Tomalak. Nhiệm vụ này sẽ khá dễ dàng khi sử dụng jsonpath: 'jsonpath.query (obj, '$ .a [*]. B [*]. C'); ' – shaochuancs