gpt4 book ai didi

javascript - 根据先前对象数组中的共享属性创建新对象

转载 作者:行者123 更新时间:2023-11-30 14:29:55 25 4
gpt4 key购买 nike

我有一个包含“年”键和“日期”键的对象数组,如下所示:

    var fullDates = [
{ 'year': '2018', date: '2018-01'},
{ 'year': '2017', date: '2017-02'},
{ 'year': '2016', date: '2016-03'},
{ 'year': '2018', date: '2018-04'},
{ 'year': '2017', date: '2017-05' },
{ 'year': '2016', date: '2016-06'}
];

我想创建一个包含年份和日期的新对象数组,但其中“日期”键是一个数组,如下所示。我该怎么做?

var final = [
{ 'year': '2018', date: ['2018-01', '2018-02']},
{ 'year': '2017', date: ['2017-03', '2017-04']},
{ 'year': '2016', date: ['2016-04', '2016-06']}
]

最佳答案

您可以使用 Array.reduce() 操作来获取该输出:

var fullDates = [
{ 'year': '2018', date: '2018-01'},
{ 'year': '2017', date: '2017-02'},
{ 'year': '2016', date: '2016-03'},
{ 'year': '2018', date: '2018-04'},
{ 'year': '2017', date: '2017-05' },
{ 'year': '2016', date: '2016-06'}
];
var final = fullDates.reduce((acc, obj)=>{
var existingObj = acc.find(item => item.year === obj.year);
if(existingObj){
existingObj.date.push(obj.date);
return acc;
}
obj.date = [obj.date];
acc.push(obj);
return acc;
}, []);
console.log(final);

关于javascript - 根据先前对象数组中的共享属性创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51363146/

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