Javascript:创建一个多项目json
我应该创建这样一个对象:Javascript:创建一个多项目json,javascript,json,Javascript,Json,我应该创建这样一个对象: var query = {"filters":{"type":"OR","filters":[ {"type":"EQ","fieldName":"name", "value":"Point_1"}, {"type":"EQ","fieldName":"name", "value":"Point_2"}, {"type":"EQ","fieldName":"name", "value":"Point_3"} ]}}; 现在,值的名称(点_1、点_2、
var query = {"filters":{"type":"OR","filters":[
{"type":"EQ","fieldName":"name", "value":"Point_1"},
{"type":"EQ","fieldName":"name", "value":"Point_2"},
{"type":"EQ","fieldName":"name", "value":"Point_3"}
]}};
现在,值的名称(点_1、点_2、点_3)位于一个名为points[]的数组中,因此我想动态创建这个对象
我所做的就是这样
var filt = {filters:[]};
for(var i in points){
filt.filters.push({"type":"EQ","fieldName":"name","value":points[i]});
}
var query = {"filters":{"type":"OR","filters":filt}};
但这不起作用
您能告诉我哪里错了吗?根据查询结构,过滤器需要包含一个数组,所以将过滤器定义为数组,并直接将对象推送到其中
var filters = [];
for(var i in points){
filters.push({"type":"EQ","fieldName":"name","value":points[i]});
}
var query = {"filters":{"type":"OR","filters":filters}};
您可以在filters属性内映射所需对象
var points=['点1','点2','点3'],
query={filters:{type:“OR”,filters:points.map(函数(p){
返回{type:“EQ”,fieldName:“name”,值:p};
}) } };
console.log(查询)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
什么是点?但是为什么不直接使用JSON.stringify(query.filters)
?@SmaKfilt
不需要是一个对象。只需将其创建为一个数组