给定一个类别数组和一个条目数组,创建一个由类别名称和条目计数组成的对象数组。假设id等于categoryId。
我写了像下面这样的代码,但是当您尝试运行它通过数百个类别和数万条目时,似乎存在性能问题。
var categories = [
{ name: 'Cats', id: 10 },
{ name: 'Dogs', id: 20 },
];
var entries = [
{categoryId: 10, name: 'Fluffy'},
{categoryId: 10, name: 'Spot'},
{categoryId: 10, name: 'Lil'},
{categoryId: 20, name: 'Tom'},
{categoryId: 20, name: 'Buck'},
{categoryId: 20, name: 'Flo'},
{categoryId: 20, name: 'Cheek'},
{categoryId: 10, name: 'Stan'},
{categoryId: 20, name: 'Stila'}
]
Expected Output: [{ name:'Cats', count: 4 }, { name:'Dogs', count: 5 }];
我写了像下面这样的代码,但是当您尝试运行它通过数百个类别和数万条目时,似乎存在性能问题。
const categoriesByEntryCount = (categories, entries) =>
categories.map(category => ({
name: category.name,
count: entries.filter(entry => entry.categoryId === category.id).length,
}));
我的问题是是否有其他方式来编写或实现这个?