2016-07-30 13 views
1

親子関係を示すjsonオブジェクトがあります。JavaScriptの親子オブジェクトの照会

特定の子供を照会することは非常に困難です。

たとえば、ここにデータがあります。

var parents = [ 
    { 
     name: 'Susan', 
     children: [{ 
      name: 'Joe' 
     }, { 
      name: 'Sam' 
     }, { 
      name: 'Michael' 
     }] 
    }, 
    { 
     name: 'Ted', 
     children: [{ 
      name: 'Richard' 
     }, { 
      name: 'Brad' 
     }] 
    } 
    ] 

優雅なやり方では、親の名前と子の名前に基づいてオブジェクトを見つけることができます。スーザン 子供:ジョー

ここで私は、私はC#でやろうとしているクエリの3種類の操作を行いたい方法です

var parentQuery = parents.filter(parent=> parent.name == 'Susan'); 
var childQuery = parents.filter(parent=> parent.children.name == 'Joe'); 
var parentChildQuery = parents.filter(parent=> parent.name == 'Susan' && parent.children.name == 'Joe') 

parentQueryはJavascriptで箱から出して動作します親が

私の喜びに。しかし、childQueryの検索は機能しません。親は内部配列を持っているので、プロパティの照会への参照方法はわかりません。下に示された。

parent.children.name == 'ジョー

任意の助けいただければ幸いです!

答えて

1

.childrenは配列であり、.nameプロパティはありません。たぶんあなたは1つを意味する

parents.filter(parent => parent.children[0].name == 'Joe'); 
parents.filter(parent => parent.children.every(child => child.name == 'Joe')); 
parents.filter(parent => parent.children.some(child => child.name == 'Joe')); 
+0

ありがとう、ありがとう! – Proximo

+0

しかし彼は、親ではなく、親のスーザンだけで子供のジョーを見つけることを望んでいたと言いました。 –

+0

@torazaburo:彼はすでに、親クエリの名前と一致する子クエリーをどのように組み合わせるかを知っているので、私はそれを私の答えに含めなかった – Bergi

関連する問題