我得到了以下JSON文件,其密钥为日期:
main [{"2018-01-01":277,"2018-01-08":361,
"2018-02-05":357,"2018-02-12":367,
"2018-03-05":481,"2018-03-12":445,
"2018-04-02":484,"2018-04-09":345}]
Run Code Online (Sandbox Code Playgroud)
我试图将它们分成3个不同的JSON文件,每个月一个文件。我尝试了这个:
var jan =[];
for(key in main){
if(key.substring(0,7) == "2018-01"){
jan.push(main[key],key)
}
}
Run Code Online (Sandbox Code Playgroud)
但是我有这个:
["2018-01-01", 277, "2018-01-08", 361, "2018-01-15", 426, "2018-01-22", 389, "2018-01-29", 394]
Run Code Online (Sandbox Code Playgroud)
但是我想这样:
jan = {"2018-01-01":277,"2018-01-08":361, ..}
fev = {"2018-02-05":357,"2018-02-12":367, ...}
任何的想法 ?谢谢
您可以使用以下reduce方法按月份对项目进行分组:
var main = {
"2018-01-01":277,"2018-01-08":361,
"2018-02-05":357,"2018-02-12":367,
"2018-03-05":481,"2018-03-12":445,
"2018-04-02":484,"2018-04-09":345
};
var result = Object.keys(main).reduce((r, a) => {
var month = a.substr(5, 2);
r[month] = r[month] || [];
var obj = {};
obj[a] = main[a];
r[month].push(obj);
return r;
}, Object.create(null));
Run Code Online (Sandbox Code Playgroud)
在此阶段,结果将如下所示:
{
"01": [{ "2018-01-01": 277 }, { "2018-01-08": 361 }],
"02": [{ "2018-02-05": 357 }, { "2018-02-12": 367 }],
"03": [{ "2018-03-05": 481 }, { "2018-03-12": 445 }],
"04": [{ "2018-04-02": 484 }, { "2018-04-09": 345 }]
}
Run Code Online (Sandbox Code Playgroud)
现在,遍历此结果的键并合并项目应该很简单。
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |