需要把代码段1中的数据结构处理成代码段2中的
代码段1:
let arr = [
{
id:1,
stage: '注册',
val: 100
},
{
id:2,
stage: '发行',
val: 200
},
{
id:3,
stage: '注册',
val: 100
}, {
id:4,
stage: '发行',
val: 300
}, {
id:5,
stage: '存续',
val: 100
},
{
id:6,
stage: '注册',
val: 100
},
{
id:7,
stage: '发行',
val: 300
},
{
id:8
stage: '存续',
val: 200
}
]
代码段2:
let arr = [
{
stage: '注册',
detailList:[
{
id:1,
stage: '注册',
val: 100,},
{
id:3,
stage: '注册',
val: 100
},
]
},{
stage: '发行',
detailList:[
{
id:1,
stage: '发行',
val: 100,},
{
id:3,
stage: '发行',
val: 100
},
]
},
]
方法:
<script setup>
function dataProcessingArr(Array) {
const c = []
const d = {}
Array.forEach(element => {
if (!d[element.stage]) {
c.push({
stage: element.stage,
detailList: [element]
})
d[element.stage] = element
} else {
c.forEach(ele => {
if (ele.stage== element.stage) {
ele.detailList.push(element)
}
})
}
})
return c
}
let arr = [
{
id:1,
stage: '注册',
val: 100
},
{
id:2,
stage: '发行',
val: 200
},
{
id:3,
stage: '注册',
val: 100
}, {
id:4,
stage: '发行',
val: 300
}, {
id:5,
stage: '存续',
val: 100
},
{
id:6,
stage: '注册',
val: 100
},
{
id:7,
stage: '发行',
val: 300
},
{
id:8
stage: '存续',
val: 200
}
]
let tagArr = dataProcessingArr(arr)
</script>