我正在创建一个嵌套表单,需要将其发送到后端以将产品添加到数据库中。
我在状态下创建了一个计费周期数组。我正在创建的另一个数组是对象数组。
let cyclesArray = [annual, monthly, weekly];
let plansArray = [ {value:200, currency: "EUR", billingCycle:"annual"}, {value:220, currency: "USD", billingCycle:"monthly"},{value:20, currency: "CHF", billingCycle:"monthly"}, ....]
将数据发送到API之前,我需要将数组格式化为一个看起来像这样的对象:
let objectToSend = {
name: "whatever",
bCycles: [
{
interval: "annual",
plan: [
{
currency: { name: "EUR", amount: 220 },
},
{
currency: { name: "CHF", amount: 200 },
},
],
},
{
interval: "monthly",
plan: [
{
currency: { name: "CHF", amount: 202220 },
},
{
currency: { name: "EUR", amount: 2021110 },
},
],
},
],
}
[基本上,我正在创建一个对象,它是一个计费周期数组(包含对象数组的数组)。
每个帐单周期最多可包含4个计划,并按其所属的帐单周期进行分组。我想知道如何过滤billsArray并根据billingCycle属性对其进行分组,然后将其相应地嵌套在与billingCycle属性同名的数组中。希望这有道理。
我正在做出反应,并准备了Redux Saga。
我会用这样的东西:
let plansArray = [{value:200, currency: "EUR", billingCycle:"annual"}, {value:220, currency: "USD", billingCycle:"monthly"},{value:20, currency: "CHF", billingCycle:"monthly"}];
let bCycles = {};
for (const {billingCycle: interval, currency: name, value: amount} of plansArray) {
if (!bCycles[interval]) bCycles[interval] = {interval, plan: []};
bCycles[interval].plan.push({name, amount});
}
let objectToSend = {name: "whatever", bCycles: Object.values(bCycles)};
console.log(objectToSend);