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