2016-05-18 47 views
0

我目前使用elasticsearch,需要我的對象上設置了一些深度嵌套的性質,目前我設置他們是這樣的:設置嵌套對象屬性的更好方法?

this.queryDSL.body.filter = {}; 
this.queryDSL.body.filter.bool = {}; 
this.queryDSL.body.filter.bool.must = []; 

迭代的方式,建立了空屬性和附加在他們身上。我試過一次設置這一切是這樣的:

this.queryDSL.body.filter.bool.must = [] 

這將導致一個錯誤,因爲JavaScript並沒有在兩者之間建立布爾值,不確定的錯誤形式。

我的方式好嗎,還是有更好的方法呢?最好我想像我的第二個例子一樣設置它們。

+1

第二個例子的主要問題是,JS無法猜測'bool'應該是什麼。我會堅持第一個例子。 –

回答

3

你的第一個例子有效,它沒有任何問題。你也可以這樣做:

this.queryDSL.body.filter = { 
    bool: { 
     must: [ 

     ] 
    } 
} 
+0

真的,它只是有點多打字,我需要可選地設置在同一水平上的另一個屬性,所以我需要具體。否則,我可能會重置一些對象值。我只是希望有更清潔的東西。雖然謝謝! –