gpt4 book ai didi

javascript - 为大于零的项目创建对象数组

转载 作者:行者123 更新时间:2023-12-01 00:21:57 27 4
gpt4 key购买 nike

我需要为大于零的项目创建一个对象数组。我有以下代码:

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 并仅进行一次 payment.push

最佳答案

您可以使用 Shorthand property names 创建一个 mapper 对象。这会将 "ops" 键与 ops 数组映射为值,依此类推。然后循环entries并根据 values[key]

推送到 payments 数组
const mapper = {
ops,
ops1,
oms
}

const payments = []

for (const [key, array] of Object.entries(mapper)) {
if (values[key] > 0)
payments.push({
"tax": options.find(item => item.value === key),
"type": array.find(item => item.value === "tax"),
"year": values.year,
"period": array.find(item => item.type === "period"),
"sum": values[key]
})
}

关于javascript - 为大于零的项目创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59338810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com