カテゴリを持つアイテムの配列をオブジェクトのアイテムを持つカテゴリに変換するにはどうすればよいですか?カテゴリを持つアイテムのアイテムを持つカテゴリへの配列
項目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'
}
]
}
の
入力配列が、私はこのコードを試してみましたが、私が欲しいの形式で私に正確な結果を与えるdoesntの:
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'属性には空白がありますが、あなたはコンマでのみ分割しています。それが問題の一部となりますか? –