2016-07-30 125 views
1

我有一個顯示父子關係的json對象。查詢JavaScript父子對象

我覺得很難查詢某個孩子。

例如,這裏是數據。

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

以優雅的方式,我希望能夠找到基於父母名稱和子名稱的對象。

家長:蘇珊 兒童:喬

這是我怎麼會做3種查詢我想在C#中做的

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屬性。也許你的意思是其中之一

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

但他說他只想跟父母蘇珊找到孩子喬,而不是任何父母。 – 2016-07-30 16:53:09

+0

@torazaburo:他已經知道如何將兒童查詢與匹配父母的姓名相結合,所以我沒有在我的回答中包括這一點 – Bergi