如何将具有项目的项目数组转换为项目为对象的类别?与项目类别的项目数组
项目
var items = [
{
itemId: 111111,
title: 'Item-1',
sellerName: 'seller-1',
category: 'Electronics, Fitness'
},
{
itemId: 222222,
title: 'Item-2',
sellerName: 'seller-2',
category: 'Cars'
},
{
itemId: 333333,
title: 'Item-3',
sellerName: 'seller-3',
category: 'Electronics'
},
{
itemId: 444444,
title: 'Item-4',
sellerName: 'seller-4',
category: 'Cars, Bikes'
}
]
//Result
var result = {
Electronics: [
{
itemId: 111111,
title: 'Item-1',
sellerName: 'seller-1'
},
{
itemId: 333333,
title: 'Item-3',
sellerName: 'seller-3'
}
],
Cars: [
{
itemId: 222222,
title: 'Item-2',
sellerName: 'seller-2'
},
{
itemId: 444444,
title: 'Item-4',
sellerName: 'seller-4'
}
],
Bikes: [
{
itemId: 444444,
title: 'Item-4',
sellerName: 'seller-4'
}
],
Fitness: [
{
itemId: 111111,
title: 'Item-1',
sellerName: 'seller-1'
}
]
}
的输入数组我试过这个代码,但犯规给我,格式为确切的结果,我想:
function convertItemsToCategories(items){
var categories = {};
var itemarr = [];
for(var i =0; i < items.length; i++){
//categories.push(items[i].category.split(','));
var singleCategory = items[i].category.split(',');
//categories[items[i].category] = items[i];
singleCategory.forEach(function(catname){
if(catname == items[i].category)
itemarr.push(items[i]);
categories[catname] = itemarr;
});
console.log(singleCategory);
}
console.log(categories);
}
convertItemsToCategories(items);
你的代码给了你什么,它与你想要的有什么不同?我注意到'category'属性有空白区域,但你只在逗号分割。这可能是问题的一部分吗? –