为了账号安全,请及时绑定邮箱和手机立即绑定

数组拆分问题

数组拆分问题

慕莱坞森 2019-05-13 10:35:40
datalist:[{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"热销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"热销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"热销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"推荐商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"推荐商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"促销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"促销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"促销商品"},……]按照categoryName的不同拆分成几个数组。应该怎么写?[{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"热销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"热销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"热销商品"},];[{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"推荐商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"推荐商品"},][{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"促销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"促销商品"},{categoryId:"f5665104-cff9-47c9-b44c-b92694e45767",categoryName:"促销商品"},]
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

//vardata={}
vardata={sort:[]}
datalist.forEach((item,index)=>{
vars=item.categoryName
data[s]?data[s].push(item):(data[s]=[item],data.sort.push(s))
//data[s]?data[s].push(item):data[s]=[item]
})
//data=Object.values(data)
//上面object转数组是无序的,所以加个sort记录所有的商品类型及顺序
data=data.sort.map((item,index)=>{
returndata[item]
})
下面快点
vardata=[]
datalist.forEach((item,index)=>{
if(data.length==0||item.categoryName!==data[data.length-1][0].categoryName){
data.push([])
}
data[data.length-1].push(item)
})
                            
查看完整回答
反对 回复 2019-05-13
?
米脂

TA贡献1836条经验 获得超3个赞

楼主,如果你已经排好序的话,是不是要这个效果:
varnewDataArray=dataList.reduce((target,current)=>{
if(target[target.length-1]==null||target[target.length-1][target[target.length-1].length-1].categoryName!==current.categoryName){
target.push([current])
}else{
target[target.length-1].push(current)
}
returntarget
},[]);
console.log(newDataArray)
                            
查看完整回答
反对 回复 2019-05-13
  • 2 回答
  • 0 关注
  • 385 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号