gpt4 book ai didi

javascript - 循环数据并将其动态存储在对象中

转载 作者:行者123 更新时间:2023-12-02 21:07:30 27 4
gpt4 key购买 nike

目前,我从一个空数组 reportSections 开始。然后,我循环遍历日期组记录日期的值,并将唯一值添加到我的reportSections数组中。

let reportSections = [];
let dataGroups = new Set();
let recordDates = new Set();
data.forEach(item => {
dataGroups.add(item['date group']);
recordDates.add(item['record date']);
});
for (const [index, value] of [...dataGroups].entries())
reportSections.push({
id: value,
name: [...recordDates][index]
});

这是一个小示例,我将循环遍历 data 变量中的数据:

[
{
'record date': '2020-04-01',
'date group': 'MONTH START'
},
{
'record date': '2020-04-01',
'date group': 'MONTH START'
},
{
'record date': '2020-04-05',
'date group': 'MONTH TO DATE - Week 1'
},
{
'record date': '2020-04-05',
'date group': 'MONTH TO DATE - Week 1'
}
]

但是,现在我需要做一些与代码的其他三个部分非常相似的事情,但设置有点不同,因为值需要添加到对象而不是数组,因此无法使用 push() 方法。当前代码如下所示:

let filteredData = {
monthstart: _.filter(data, {'date group': 'MONTH START'}),
monthstart_week1: _.filter(data, {'date group': 'MONTH TO DATE - Week 1'}),
monthstart_week2: _.filter(data, {'date group': 'MONTH TO DATE - Week 2'}),
};

let combinedData = {
monthstart: [],
monthstart_week1: [],
monthstart_week2: [],
};

let reportMap = {
monthstart: {},
monthstart_week1: {},
monthstart_week2: {},
};

通常我对此进行了硬编码,但由于我将处理动态日期,并且给定月份中可能有不同的周数,因此我需要有一些动态的东西。 我的问题是,如何循环遍历数据并在 filteredDatacombinedData 中显示每个唯一的日期组 reportMap 就像我对 reportSections 数组所做的那样?

旁注:

combinedDatareportMap 中的空数组和对象将保持原样,仅实际名称发生变化(即 monthstart动态更改,但 []{} 不会。使用 filteredData 时,名称也会更改(即 monthstart) 并且我还需要在 _.filter() 部分中使用 date group 中的相同值。

我希望我能够足够清楚地解释这一点。如果我需要解释更多,请告诉我,我可以为我的问题添加更多细节,但任何帮助将不胜感激。谢谢!

最佳答案

如果我理解您的问题,您希望向对象动态添加新的键值对。

你可以这样做:

const myObject = {};
// loop start
myObject["myDynamicKey"] = "myDynamicValue";
// loop end

或者像这样,使用扩展运算符:

let myObject = {};
// loop start
myObject = {...myObject, ["myDynamicKey"]: "myDynamicValue"}
// loop end

关于javascript - 循环数据并将其动态存储在对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61188761/

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