const list = [{ updateTime: '1', dimensionColumn: '苹果' },
{ updateTime: '2', dimensionColumn: '香蕉' },
{ updateTime: '3', dimensionColumn: '梨子' }]
原数据格式↓
const data = [{ id: '1,2' }, { id: '3' }]
理想效果↓
const result = [{ updateTime: '1,2', dimensionColumn: '苹果,香蕉' },
{ updateTime: '3', dimensionColumn: '梨子' }]
data的id对应的是list的updateTime,data中单条id的数量不一定,多个的话用逗号隔开,包括相对应的dimensionColum也是
顺带请教下大家成功转换为result的格式后,怎么转回data的格式呢
请教各位大神该如何操作,小弟在这里先谢谢各位大神的解答了,感激不尽!
###//转换最直接的方法就是for循环
const result = [];
for(let i in data){
const ids = data[i].id.split(',');
const arr = [];
for(let j in ids){
for(let k in list){
if(ids[j] == list[k].updateTime){
arr.push(list[k].dimensionColumn);
}
}
}
const obj = {updateTime:data[i].id,dimensionColumn:arr.join(",")}
result.push(obj)
}
//还原
const data2 = result.map((item)=>{
return {id:item.updateTime}
})
###const result = [{ updateTime: '1,2', dimensionColumn: '苹果,香蕉' },
{ updateTime: '3', dimensionColumn: '梨子' }]
const u = result.map(i => i.updateTime).join().split(","),
c = result.map(i => i.dimensionColumn).join().split(","),
data = []
u.forEach((v, k) => data.push({ updateTime: v, dimensionColumn: c[k] }))
###data.map(item => {
return {
updateTime: item.id,
dimensionColumn: item.id.split(",").map(id => {
return list.find(s => s.updateTime == id)?.dimensionColumn;
}).join(",")
}
})