数组转换想要的数组?
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}]},
]
数组一怎么转换为数组二呢 ,相邻的高度相等放在一起
回答:
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},
])
以上是 数组转换想要的数组? 的全部内容, 来源链接: utcz.com/p/935324.html