У меня есть этот массив транзакций :
const transactions = [
{
service: 'Some Text Assignment #1',
phase: 'Assignment'
},
{
service: 'Some Text Processing #1',
phase: 'Processing'
},
{
service: 'Some Text Processing #2',
phase: 'Processing'
},
{
service: 'Some Text Issue Constancy #1',
phase: 'Issue Constancy'
},
{
service: 'Some Text Quality Control #1',
phase: 'Quality Control'
},
{
service: 'Some Text Signature and stamp #1',
phase: 'Signature and stamp'
},
{
service: 'Some Text Signature and stamp #2',
phase: 'Signature and stamp'
},
{
service: 'Some Text Signature and stamp #3',
phase: 'Signature and stamp'
},
{
service: 'Some Text Processing #3',
phase: 'Processing'
},
{
service: 'Some Text Processing #4',
phase: 'Processing'
},
{
service: 'Some Text Signature and stamp #4',
phase: 'Signature and stamp'
},
{
service: 'Some Text Signature and stamp #5',
phase: 'Signature and stamp'
},
{
service: 'Some Text Approved #1',
phase: 'Approved'
}
];
Мне нужно получить значения, сгруппированные по phase
, но с определенным условием:
необходимо последнее значение из непрерывных фаз в пределах того же значения фазы .
То, что я хочу получить, выглядит примерно так:
[
{
service: 'Some Text Assignment #1',
phase: 'Assignment'
},
{
service: 'Some Text Processing #2',
phase: 'Processing'
},
{
service: 'Some Text Issue Constancy #1',
phase: 'Issue Constancy'
},
{
service: 'Some Text Quality Control #1',
phase: 'Quality Control'
},
{
service: 'Some Text Signature and stamp #3',
phase: 'Signature and stamp'
},
{
service: 'Some Text Processing #4',
phase: 'Processing'
},
{
service: 'Some Text Signature and stamp #5',
phase: 'Signature and stamp'
},
{
service: 'Some Text Approved #1',
phase: 'Approved'
}
]
Я пробовал это:
transactions.reduce((acc, value) => {
acc[value.phase] = value;
return acc;
}, {});
Но я получаю последнее значение каждого phase
. Я подумал об использовании Maps
или Sets
. Некоторые идеи?