设置嵌套对象 属性 的更好方法?

Better way to set a nested object property?

我目前正在使用 elasticsearch,需要在我的对象上设置一些深度嵌套的属性,目前我是这样设置的:

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

一种迭代方式,构建空属性并附加到它们上。我尝试像这样一次设置它:

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

这会导致错误,因为 javascript 不会以未定义错误的形式在两者之间创建 bool 值。

我的方法可以吗,或者有更好的方法吗?最好我想像在我的第二个例子中那样一次设置它们。

您的第一个示例有效,而且确实没有任何问题。您也可以这样做:

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

        ]
    }
}