Javascript 在JS中编写一个基于输入数组创建动态输出的函数

Javascript 在JS中编写一个基于输入数组创建动态输出的函数,javascript,Javascript,我正在尝试用JavaScript编写一个函数,它将把一个ID数组作为输入,并生成下面提到的相应输出 以下是预期的情况: 当输入数组为: ids= [1, 2] ids = [1,2,3] 预期产出为: { c: 0, query: { or: [ { and: [{

我正在尝试用JavaScript编写一个函数,它将把一个ID数组作为输入,并生成下面提到的相应输出

以下是预期的情况:

当输入数组为:

ids= [1, 2]
ids = [1,2,3]
预期产出为:

{
              c: 0,
              query: {
                or: [
                    {  
                      and: [{
                            equals: {
                            field: "emp_id",
                            value: 36,
                        }},
                        {
                            equals: {
                            field: "class_id",
                            value: 1,
                        },
                      }
                        ]

                    },
                    {  
                      and: [{
                            equals: {
                            field: "emp_id",
                            value: 29,
                        }},
                        {
                            equals: {
                            field: "class_id",
                            value: 1,
                        },
                      }
                        ]

                    },
                                        {  
                      and: [{
                            equals: {
                            field: "emp_id",
                            value: 29,
                        }},
                        {
                            equals: {
                            field: "class_id",
                            value: 2,
                        },
                      }
                        ]

                    },
                                        {  
                      and: [{
                            equals: {
                            field: "emp_id",
                            value: 36,
                        }},
                        {
                            equals: {
                            field: "class_id",
                            value: 2,
                        },
                      }
                        ]

                    }
                ]
            },
            a: {}
              };
当输入数组为:

ids= [1, 2]
ids = [1,2,3]
预期产出为:

 {
      c: 0,
      query: {
        or: [
            {  
              and: [{
                    equals: {
                    field: "emp_id",
                    value: 36,
                }},
                {
                    equals: {
                    field: "class_id",
                    value: 1,
                },
              }
                ]

            },
            {  
              and: [{
                    equals: {
                    field: "emp_id",
                    value: 29,
                }},
                {
                    equals: {
                    field: "class_id",
                    value: 1,
                },
              }
                ]

            },
                                {  
              and: [{
                    equals: {
                    field: "emp_id",
                    value: 29,
                }},
                {
                    equals: {
                    field: "class_id",
                    value: 2,
                },
              }
                ]

            },
                                {  
              and: [{
                    equals: {
                    field: "emp_id",
                    value: 36,
                }},
                {
                    equals: {
                    field: "class_id",
                    value: 2,
                },
              }
                ]

            },
                                                    {  
              and: [{
                    equals: {
                    field: "emp_id",
                    value: 36,
                }},
                {
                    equals: {
                    field: "class_id",
                    value: 3,
                },
              }
                ]

            },
                                                    {  
              and: [{
                    equals: {
                    field: "emp_id",
                    value: 29,
                }},
                {
                    equals: {
                    field: "class_id",
                    value: 3,
                },
              }
                ]

            }
        ]
    },
    a: {}
      }; 
emp_id:29和36是一种常量 这将永远存在

以下是我正在尝试的:

   function fc(ids){
for (let i =0 ;i< ids.length;i++){
    let q = {
              c: 0,
              query: {
                or: [
                    {  
                      and: [{
                            equals: {
                            field: "emp_id",
                            value: 36,
                        }},
                        {
                            equals: {
                            field: "class_id",
                            value: ids[i],
                        },
                      }
                        ]

                    },
                    {  
                      and: [{
                            equals: {
                            field: "emp_id",
                            value: 29,
                        }},
                        {
                            equals: {
                            field: "class_id",
                            value: ids[i],
                        },
                      }
                        ]

                    }
                ]
            },
            a: {}
              };
              return q;
}
   }

console.log(fc([1,2,3])); // logs the output with only id:1 not 2!
功能fc(ids){
for(设i=0;i
这可能会有所帮助

const fc=(ClassID)=>{
常量empIds=[29,36];
常数arr=[];
常量查询=(classId,empId)=>{
返回{
以及:[
{
等于:{
字段:“emp_id”,
值:empId,
},
},
{
等于:{
字段:“class_id”,
值:classId,
},
},
],
};
};
ClassID.forEach((cId)=>{
empIds.forEach((eId)=>{
arr.push(查询(cId,eId));
});
});
返回{
c:0,
查询:{
或者:啊,,
},
a:{},
};
};

log(fc([1,2,3])正确的缩进将告诉您为什么它不能按预期工作。创建q并在循环中返回它。