我正在尝试根据特定字段(值)对对象数组进行分组,然后按特定类型对它们进行排序:
var list = [
{value: 'fox', country: 'nl', type: 'animal', priority: 1},
{value: 'fox', country: 'be', type: 'animal', priority: 2},
{value: 'cat', country: 'de', type: 'animal', priority: 3},
{value: 'david', country: 'nl', type: 'human', priority: 4},
{value: 'marc', country: 'be', type: 'human', priority: 5},
{value: 'lola', country: 'de', type: 'human', priority: 6},
{value: 'tiger', country: 'nl', type: 'animal', priority: 7},
{value: 'koala', country: 'be', type: 'animal', priority: 8},
{value: 'tiger', country: 'nl', type: 'animal', priority: 9},
];
// output/result should be:
[
{value: 'fox', countries: ['nl', 'be'], type: 'animal', priority: 1},
{value: 'cat', countries: ['de'], type: 'animal', priority: 2},
{value: 'tiger', countries: ['nl'], type: 'animal', priority: 3},
{value: 'koala', contries: ['be'], type: 'animal', priority: 4},
{value: 'david', contries: ['nl'], type: 'human', priority: 1},
{value: 'marc', contries: ['be'], type: 'human', priority: 2},
{value: 'lola', contries: ['de'], type: 'human', priority: 3},
];
我正在尝试使用减速器来删除重复的内容,但我无法对国家/地区进行分组
list.reduce((accumulator, currentValue, index) => {
const {country, value} = currentValue;
if(!accumulator.some(item => item.value === currentValue.value)) {
accumulator.push({
value: currentValue.value,
countries: [accumulator.country].concat(currentValue.country)
})
}
return accumulator;
}, [])
哔哔one
动漫人物
Cats萌萌
慕桂英3389331
随时随地看视频慕课网APP
相关分类