gpt4 book ai didi

javascript - 动态构建函数?

转载 作者:行者123 更新时间:2023-11-30 11:05:07 25 4
gpt4 key购买 nike

我正在使用一个名为 Body Builder 的查询构建器我需要构建器根据所选过滤器的数量工作。因此,特定列表类型的默认过滤器如下所示:

bodybuilder()
.aggregations('terms', 'listingType.keyword', 'Type')
.build()

按预期工作。我有我需要的聚合桶。

如果选择了一个项目怎么办?我想向其中添加该过滤器。

这是我想要的样子:

bodybuilder()
.addFilter('term', 'itemTypeId', 2)
.aggregations('terms', 'listingType.keyword', 'Type')
.build()

或者如果选择了多个项目,那么......

bodybuilder()
.addFilter('term', 'itemTypeId', id)
.addFilter('term', 'moo.keyword', moo)
.addFilter('term', 'make.keyword', make)
.aggregations('terms', 'listingType.keyword', 'Type')
.build()

我有一系列选定的过滤器。我想我可以做类似的事情:

const activeFilters = [{type: 'make.keyword, value: 'SAMSUNG'}, {type: 'moo.keyword', value: 'moo'}]

if (activeFilters) {
activeFilters.map(item => {
addFilter(item.type, item.value)
}
}

//OR

bodybuilder()
activeFilters.map(item => addFilter(item.type, item.value)
.aggregation('terms' , 'listingType.keyword', 'Type')
.build()

类似的东西。有什么建议吗?

谢谢!

最佳答案

是的,你可以这样做,你可以这样做:

const activeFilters = [{type: 'make.keyword, value: 'SAMSUNG'}, {type: 'moo.keyword', value: 'moo'}];
let query = bodybuilder();

activeFilters.forEach(filter => {
query = query.addFilter('term', filter.type, filter.value);
});

query.aggregation('terms' , 'listingType.keyword', 'Type')
.build()

想法是保留对返回值的引用而不是链接调用。

关于javascript - 动态构建函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55976850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com