【发布时间】:2020-10-09 07:03:39
【问题描述】:
嗨,我有一个对象数据类型,我需要从中生成新的数组模式来过滤操作,但不知何故,我无法从下面的代码中达到我预期的输出模式,我错过了逻辑的地方
sample code
filterArray = {floor:["floor1","floor2","floor3"],age:[26,23,24],dept:["IT"]}
var filter = [];
var groupArray = [];
for(var key in filterArray){
var keys = filterArray[key];
for (value in keys){
if (keys.length > 1){
groupArray.push([key, "=",keys[value]]);
groupArray.push("or");
}else{
if (filter.length > 0){
filter.pop()
filter.push("and")
filter.push([key, "=",keys[value]]);
filter.push("and");
}else{
filter.push([key, "=",keys[value]]);
filter.push("and");
}
}
}
}
filter.pop()
groupArray.pop()
if (groupArray.length > 0){
filter.push(groupArray);
}
我的示例输出
[
[
["floor", "=", "floor1"],
"or",
["floor", "=", "floor2"],
"or",
["floor", "=", "floor3"],
"or",
["age", "=", "26"],
"or",
["age", "=", "23"],
"or",
["age", "=", "24"]
],
"and",
[ "dept", "=", "IT"]
]
但我的预期输出是
[
[
["floor", "=", "floor1"],
"or",
["floor", "=", "floor2"],
"or",
["floor", "=", "floor3"]
],
"and",
[
["age", "=", "26"],
"or",
["age", "=", "23"],
"or",
["age", "=", "24"]
],
"and",
[ "dept", "=", "IT"]
]
我需要帮助来解决这个问题,这两天一直在工作这个模块,谁能解决我的问题,将不胜感激
(注意:过滤器数组是根据用户输入动态生成的)
【问题讨论】:
标签: javascript loops object arraylist