我有一个对象定义为
{
"query" :
{
/* snip */
},
"aggs":
{
"times" :
{
"date_histogram" :
{
"field" : "@timestamp",
"interval" : "15m",
"format" : "HH:mm",
"min_doc_count" : 0
}
}
}
};
如何判断
interval
中的aggs.times.date_histogram
是否存在,以便可以对其进行操作?澄清:我不确定
interval
的任何父对象是否存在。 最佳答案
假定该值始终是一个非空白字符串,请对其进行真实性测试:
if (aggs.times.date_histogram.interval) {
// Use it
}
您可能会缓存那些属性查找的结果。尽管对性能的影响并不大,但对于代码的可维护性可能很有用:
var interval = aggs.times.date_histogram.interval;
if (interval) {
// Use it
}
如果您担心每个级别可能都不存在,它将变得更加冗长:
if (aggs &&
aggs.times &&
aggs.times.date_histogram &&
aggs.times.date_histogram.interval) {
// Use it
}
a question with several answers关于为此编写函数。