+-
原数据格式↓
const data = [{ name: 'apple', cut: 'a,b,c' }, { name: 'trigger', cut: 'a,g' }]
期望数据格式↓
const data1 = [{ name: 'apple', final: 'a' },
{ name: 'apple', final: 'b' },
{ name: 'apple', final: 'c' },
{ name: 'trigger', final: 'a' },
{ name: 'trigger', final: 'g' }]
在原数据格式data中的cut字段,用逗号来拆分为新字段final,name不变
请教各位大神该如何操作,小弟在这里先谢谢各位大神的解答了,感激不尽!
基本思路:把 cut
拆分之后进行一次映射,可以拿到每个原始对象对应的一个数组,组合起来就是一个二维数据;再把这个二维数据展开,就是你要的答案。
flatMap
就是先映射再展开
const data = [{ name: 'apple', cut: 'a,b,c' }, { name: 'trigger', cut: 'a,g' }];
const data1 = data.flatMap(it =>
it.cut.split(",")
.map(s => ({ name: it.name, final: s }))
);
console.log(data1);
const data = [{ name: 'apple', cut: 'a,b,c' }, { name: 'trigger', cut: 'a,g' }]
console.log(data.reduce((total, item) => {
return total.concat(item.cut.split(',').map(val => {
const res = {}
res.name = item.name
res.final = val
return res
}))
}, []))
const data = [{ name: 'apple', cut: 'a,b,c' }, { name: 'trigger', cut: 'a,g' }]
const res = []
data.forEach(item => {
const arr = item.cut.split(',')
arr.forEach(it => {
res.push({
name: item.name,
final: it
})
})
})
console.log(res)