У меня есть массив объектов в javascript, который я хочу уменьшить. Смотрите код ниже. сообщение с 6 или более цифрами проверено, меньшее количество не проверено. Я группирую их по группам.
const myArray = [
{ group: 'groupA', message: 'Text without a number', sl: '1A' },
{ group: 'groupA', message: 'Text with a number WO5467829', sl: '1A' },
{ group: 'groupB', message: 'Text without a number', sl: '1A' },
{ group: 'groupA', message: 'Text with a number WO5467829', sl: '1A' },
{ group: 'groupB', message: 'Text with a number WO5467829', sl: '1A' },
{ group: 'groupC', message: 'Text without a number', sl: '1B' },
{ group: 'groupD', message: 'Text with a number Tick0127866', sl: '1B' },
{ group: 'groupC', message: 'Text without a number', sl: '1A' }
];
output = myArray.reduce((acc, line) => {
let yes = 0;
let no = 0;
line.message.match(/\d{6,}/) ? yes++ : no++;
acc[line.group] = acc[line.group] || {};
acc[line.group].verified = (acc[line.group].verified || 0) + yes;
acc[line.group].unverified = (acc[line.group].unverified || 0) + no;
return acc;
}, {});
console.log('output', output);
Однако я хотел бы, чтобы вывод также представлял собой массив объектов, таких как:
[
{ group: 'groupA', verified: 2, unverified: 1 },
{ group: 'groupB', verified: 1, unverified: 1 },
{ group: 'groupC', verified: 0, unverified: 2 },
{ group: 'groupD', verified: 1, unverified: 0 }
]
Как бы я это сделал?