如何將具有項目的項目數組轉換爲項目爲對象的類別?與項目類別的項目數組
項目
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'屬性有空白區域,但你只在逗號分割。這可能是問題的一部分嗎? –