Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.3k views
in Technique[技术] by (71.8m points)

js 数组操作的问题

后端给我的数据是这样的:

let obj = [
    {
        areaName:"华南地区",
        cityName:"深圳"
    },
    {
        areaName:"华南地区",
        cityName:"广州"
    },
    {
        areaName:"华南地区",
        cityName:"海口"
    },
    {
        areaName:"华北地区",
        cityName:"黑龙江"
    }
];

我该怎么处理才能变成下面这种格式?

{
 areaName:"华南地区",
 children:[
    {
        cityName:"深圳"
    },
    {
        cityName:"广州"
    },
    {
        cityName:"海口"
    }]
},
{
areaName:"华北地区",
children:[
    {
        cityName:"黑龙江"
    }]
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
var obj = [
    {
        areaName:"华南地区",
        cityName:"深圳"
    },
    {
        areaName:"华南地区",
        cityName:"广州"
    },
    {
        areaName:"华南地区",
        cityName:"海口"
    },
    {
        areaName:"华北地区",
        cityName:"黑龙江"
    }
];
var areaNameArray = [];
obj.forEach(item=>{
    if(!areaNameArray.includes(item.areaName)) {
        areaNameArray.push(item.areaName)
    }
});
var result = areaNameArray.map(areaName=>{
    const children = obj.filter(item=>item.areaName === areaName).map(item=>({areaName:item.areaName}))
    return {
        areaName,
        children
    }
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...