我需要帮助才能使用lodash生成新结构 我有这些数据:
items: [
{ color: 'Green', size: 'Large', style: 'Skinny' },
{ color: 'Blue', size: 'Small', style: 'Tapered' },
{ color: 'Red', size: 'Medium', style: 'Slim' },
{ color: 'Blue', size: 'Large', style: 'Tapered' },
];
但是我需要像Style那样的东西:
[
{
group: 'Skinny',
items: [
{ color: 'Green', size: 'Large', style: 'Skinny' }
]
}
{
group: 'Tapered',
items: [
{ color: 'Blue', size: 'Small', style: 'Tapered' },
{ color: 'Blue', size: 'Large', style: 'Tapered' }
]
}
{
group: 'Slim',
items: [
{ color: 'Red', size: 'Medium', style: 'Slim' }
]
}
谢谢
答案 0 :(得分:0)
使用_.groupBy()
收集对象,然后_.map()
收集所需的表单:
var items = [
{ color: 'Green', size: 'Large', style: 'Skinny' },
{ color: 'Blue', size: 'Small', style: 'Tapered' },
{ color: 'Red', size: 'Medium', style: 'Slim' },
{ color: 'Blue', size: 'Large', style: 'Tapered' },
];
var result = _(items)
.groupBy('style')
.map(function(v, k) {
return {
group: k,
items: v
};
})
.value();
console.log(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;