Javascript 为大于零的项创建对象数组
我需要为大于零的项创建一个对象数组。我有以下代码:Javascript 为大于零的项创建对象数组,javascript,reactjs,Javascript,Reactjs,我需要为大于零的项创建一个对象数组。我有以下代码: const payments = []; if (values.ops > 0) { payments.push({ "tax": options.find(item => item.value === "ops"), "type": ops.find(item => item.value === "tax"), "year": values.year, "period": ops.find
const payments = [];
if (values.ops > 0) {
payments.push({
"tax": options.find(item => item.value === "ops"),
"type": ops.find(item => item.value === "tax"),
"year": values.year,
"period": ops.find(item => item.type === "period"),
"sum": values.ops
})
};
if (values.ops1 > 0) {
payments.push({
"tax": options.find(item => item.value === "ops1"),
"type": ops1.find(item => item.value === "tax"),
"year": values.year,
"period": ops1.find(item => item.type === "period"),
"sum": values.ops1
})
};
if (values.oms > 0) {
payments.push({
"tax": options.find(item => item.value === "oms"),
"type": oms.find(item => item.value === "tax"),
"year": values.year,
"period": oms.find(item => item.type === "period"),
"sum": values.oms
})
};
是否有任何方法可以简化此操作,以便我可以检查项目是否大于0并进行付款。只推一次?您可以使用创建一个映射器对象。这将映射
“ops”
键和ops
数组作为值,依此类推。然后循环遍历此对象的,并根据值[key]
const payments = [];
[
"ops",
"ops1",
"oms"
].forEach(prop=>{
if(values[props]>0){
payments;.push({
tax: options.find(item => item.value === prop),
type: ops.find(item => item.value === "tax"),
year: values.year,
period: ops.find(item => item.type === "period"),
sum: values[prop]
})
}
})
const映射器={
行动计划,
ops1,
oms
}
施工费用=[]
for(Object.entries的常量[键,数组](映射器)){
如果(值[键]>0)
付款。推({
“tax”:options.find(item=>item.value==key),
“type”:array.find(item=>item.value==“tax”),
“年”:值。年,
“period”:数组.find(item=>item.type==“period”),
“总和”:值[键]
})
}
您可以使用创建映射器
对象。这将映射“ops”
键和ops
数组作为值,依此类推。然后循环遍历此对象的,并根据值[key]
const映射器={
行动计划,
ops1,
oms
}
施工费用=[]
for(Object.entries的常量[键,数组](映射器)){
如果(值[键]>0)
付款。推({
“tax”:options.find(item=>item.value==key),
“type”:array.find(item=>item.value==“tax”),
“年”:值。年,
“period”:数组.find(item=>item.type==“period”),
“总和”:值[键]
})
}
您可以为ops
、ops1
和oms
获取一个对象,并在必要时迭代键并删除新对象
data = { ops, ops1, oms }
Object.keys(data).forEach(k => {
if (values[k] <= 0) return;
payments.push({
tax: options.find(item => item.value === k),
type: data[k].find(item => item.value === "tax"),
year: values.year,
period: data[k].find(item => item.type === "period"),
sum: values[k]
});
});
data={ops,ops1,oms}
Object.keys(数据).forEach(k=>{
如果(值[k]项.value==k),
类型:数据[k]。查找(项=>项。值==“税”),
年份:values.year,
期间:数据[k]。查找(项=>item.type==“期间”),
总和:值[k]
});
});
您可以为ops
、ops1
和oms
获取一个对象,并在必要时迭代键并删除新对象
data = { ops, ops1, oms }
Object.keys(data).forEach(k => {
if (values[k] <= 0) return;
payments.push({
tax: options.find(item => item.value === k),
type: data[k].find(item => item.value === "tax"),
year: values.year,
period: data[k].find(item => item.type === "period"),
sum: values[k]
});
});
data={ops,ops1,oms}
Object.keys(数据).forEach(k=>{
如果(值[k]项.value==k),
类型:数据[k]。查找(项=>项。值==“税”),
年份:values.year,
期间:数据[k]。查找(项=>item.type==“期间”),
总和:值[k]
});
});
您能为值
变量发布一个示例吗?谢谢您能为值变量发布一个示例吗?谢谢对于类型
和期间
,操作
数组不固定对于类型
和期间
,操作
数组不固定