猿问

商品sku数组的实现,最好是用reduce

原始数组,数组不固定,可能有多个,id和name不同,sid可以相同(相同属于同一类)
vararr=[
{"id":"1","sid":"mm","name":"黑色"},
{"id":"2","sid":"mm","name":"白色"},
{"id":"3","sid":"xx","name":"64G"},
{"id":"4","sid":"xx","name":"128G"},
{"id":"5","sid":"yy","name":"normal"},
{"id":"6","sid":"yy","name":"plus"}
]
结果组成
vararr2=[
{name:'黑色,64G,normal',attrs:[{"id":"1","sid":"mm","name":"黑色"},{"id":"3","sid":"xx","name":"64G"},{"id":"5","sid":"yy","name":"normal"}]},
{name:'黑色,64G,plus',attrs:[{"id":"1","sid":"mm","name":"黑色"},{"id":"3","sid":"xx","name":"64G"},{"id":"6","sid":"yy","name":"plus"}]},
{name:'黑色,128G,normal',attrs:[{"id":"1","sid":"mm","name":"黑色"},{"id":"4","sid":"xx","name":"128G"},{"id":"5","sid":"yy","name":"normal"}]},
{name:'黑色,128G,plus',attrs:[{"id":"1","sid":"mm","name":"黑色"},{"id":"4","sid":"xx","name":"128G"},{"id":"6","sid":"yy","name":"plus"}]},
{name:'白色,64G,normal',attrs:[{"id":"2","sid":"mm","name":"白色"},{"id":"3","sid":"xx","name":"64G"},{"id":"5","sid":"yy","name":"normal"}]},
{name:'白色,64G,plus',attrs:[{"id":"2","sid":"mm","name":"白色"},{"id":"3","sid":"xx","name":"64G"},{"id":"6","sid":"yy","name":"plus"}]},
{name:'白色,128G,normal',attrs:[{"id":"2","sid":"mm","name":"白色"},{"id":"4","sid":"xx","name":"128G"},{"id":"5","sid":"yy","name":"normal"}]},
{name:'白色,128G,plus',attrs:[{"id":"2","sid":"mm","name":"白色"},{"id":"4","sid":"xx","name":"128G"},{"id":"6","sid":"yy","name":"plus"}]},
]
如果
vararr=[
{"id":"1","sid":"mm","name":"黑色"},
{"id":"2","sid":"mm","name":"白色"},
{"id":"3","sid":"xx","name":"64G"},
{"id":"4","sid":"xx","name":"128G"}
]
vararr2=[
{name:'黑色,64G',attrs:[{"id":"1","sid":"mm","name":"黑色"},{"id":"3","sid":"xx","name":"64G"}]},
{name:'黑色,128G',attrs:[{"id":"1","sid":"mm","name":"黑色"},{"id":"4","sid":"xx","name":"128G"}]},
{name:'白色,64G',attrs:[{"id":"2","sid":"mm","name":"白色"},{"id":"3","sid":"xx","name":"64G"}]},
{name:'白色,128G',attrs:[{"id":"2","sid":"mm","name":"白色"},{"id":"4","sid":"xx","name":"128G"}]},
]
人到中年有点甜
浏览 277回答 2
2回答

30秒到达战场

按照当前重组对象(就算写在reduce也是一样的,还是纯函数的形式重组你的对象),等于说就是sid一样的抽一个出来,然后重新组成一个对象放到另外一个数组里。大致思路就这样
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答