Привет, у меня есть один тип данных объекта, из которого мне нужно сгенерировать новые шаблоны массива для фильтрации операции, но каким-то образом я не смог достичь ожидаемого выходного шаблона из приведенного ниже кода, не где мне не хватает logi c
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"]
]
Мне нужна помощь, чтобы исправить это работал над этим модулем последние два дня, может ли кто-нибудь решить мою проблему, будет признателен
(Примечание: этот массив фильтров генерируется динамически на основе ввода данных пользователем)