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

Better way to set a nested object property?

本文关键字:更好 方法 属性 嵌套 对象 设置      更新时间:2023-09-26

我目前正在使用弹性搜索,需要在我的对象上设置一些深度嵌套的属性,目前我正在这样设置它们:

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

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

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

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

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

你的第一个例子很有效,它确实没有什么问题。你也可以这样做:

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