数组转换想要的数组?-灵析社区

我是张工你呢

let data=[ {id:1,width:500,height:1000}, {id:2,width:500,height:1000}, {id:3,width:500,height:500}, {id:4,width:500,height:500}, {id:5,width:500,height:1000}, {id:6,width:500,height:1000}, {id:7,width:500,height:500}, {id:8,width:500,height:500}, {id:9,width:500,height:500}, {id:10,width:500,height:500}, ] let data2=[ {id:1,slot:1,list:[{width:500,height:1000},{width:500,height:1000}]}, {id:2,slot:0,list:[{width:500,height:500},{width:500,height:500}]}, {id:3,slot:1,list:[{width:500,height:1000},{width:500,height:1000}]}, {id:4,slot:0,list:[{width:500,height:500},{width:500,height:500},{width:500,height:500},{width:500,height:500}]}, ] 数组一怎么转换为数组二呢 ,相邻的高度相等放在一起

阅读量:156

点赞量:0

问AI
const exchange = list => list.reduce((res, v) => { const prev = res[res.length-1]; if(prev?.list[0].height === v.height) prev.list.push({width: v.width, height: v.height}); else res.push({id: res.length+1, slot: 1-res.length%2, list: [{width: v.width, height: v.height}]}) return res; }, []) exchange([ {id:1,width:500,height:1000}, {id:2,width:500,height:1000}, {id:3,width:500,height:500}, {id:4,width:500,height:500}, {id:5,width:500,height:1000}, {id:6,width:500,height:1000}, {id:7,width:500,height:500}, {id:8,width:500,height:500}, {id:9,width:500,height:500}, {id:10,width:500,height:500}, ])