Ben node.js aşağıdaki nesne ve lodash "sorguları" (Ben sadece terminalde node
çalıştırıyorum):Lodash dönüş dizisi yolu geçerli olup olmadığını
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'
Sorum şu: yolun geçerli olduğu bulunan bir dizi değer döndürmek için bir yol var mı?
Örnek: ben bu en verimli olacak ya da ne gerek ama bazı koşullar geçerliyse bir dizi oluşturmak için _.each veya _.map kullanabilirsiniz eğer bilmiyorum
> _.get(obj, "a[].b[].c")
['apple', 'pineapple']
belirli yolu için sonuç dizisini almak istiyor musunuz, bir şey 'bir [0] .b'? Ya da soruda verdiğiniz gibi herhangi bir yol? – alexmac
jsonpath'a bakın. https://github.com/dchester/jsonpath – Tomalak
@ Tomalak'ın tavsiyesi sayesinde. Bu görev jsonpath kullanarak oldukça kolay olurdu: jsonpath.query (obj, '$ .a [*]. B [*]. C'); – shaochuancs