Array.reduce()
按数组中某个值进行分组
let questions = [{
group: 'group1',
title: 'question content 1'
}, {
group: 'group1',
title: 'question content 2'
}, {
group: 'group1',
title: 'question content 3'
}, {
group: 'group2',
title: 'question content 3'
}];
let newQuestions = questions.reduce(function (accumulator, currentValue) {
accumulator[currentValue.group] = accumulator[currentValue.group] || [];
accumulator[currentValue.group].push(currentValue);
return accumulator;
}, {});
newQuestions值 输出:
// newQuestions = {
// group1: [
// {group: 'group1', title: 'question content 1'},
// {group: 'group1', title: 'question content 2'},
// {group: 'group1', title: 'question content 3'}
// ],
// group2: [{group: 'group2', title: 'question content 3'}]
// }