//原来的格式
const PRODUCTS = [
{ category: 'Sporting Goods', price: '$49.99', stocked: true, name: 'Football' },
{ category: 'Sporting Goods', price: '$9.99', stocked: true, name: 'Baseball' },
{ category: 'Sporting Goods', price: '$29.99', stocked: false, name: 'Basketball' },
{ category: 'Electronics', price: '$99.99', stocked: true, name: 'iPod Touch' },
{ category: 'Electronics', price: '$399.99', stocked: false, name: 'iPhone 5' },
{ category: 'Electronics', price: '$199.99', stocked: true, name: 'Nexus 7' }
];
//需要的格式 (就是把公共的标题提取出来了)
const res=[{ category: 'Sporting Goods' },
{
product:
{
category: 'Sporting Goods',
price: '$49.99',
stocked: true,
name: 'Football'
}
},
{
product:
{
category: 'Sporting Goods',
price: '$9.99',
stocked: true,
name: 'Baseball'
}
},
{
product:
{
category: 'Sporting Goods',
price: '$29.99',
stocked: false,
name: 'Basketball'
}
},
{ category: 'Electronics' },
{
product:
{
category: 'Electronics',
price: '$99.99',
stocked: true,
name: 'iPod Touch'
}
},
{
product:
{
category: 'Electronics',
price: '$399.99',
stocked: false,
name: 'iPhone 5'
}
},
{
product:
{
category: 'Electronics',
price: '$199.99',
stocked: true,
name: 'Nexus 7'
}
}]
let rows = [];
//记录最后一个分类的值,初始值为null
let lastCategory = null;
PRODUCTS.forEach(item => {
if (item.category !== lastCategory) {
rows.push({ category: item.category })
}
rows.push({ product: item })
lastCategory = item.category;
})
console.log(rows)