js 数组的处理?
let arr = [
{ areaId: 43, areaLevel: 0, areaName: "湖南" },
{ areaId: 4301, areaLevel: 1, areaName: '长沙' },
{ areaId: 430102, areaLevel: 2, areaName: '芙蓉' },
{ areaId: 430103, areaLevel: 2, areaName: '天心' },
{ areaId: 4303, areaLevel: 1, areaName: '湘潭' },
{ areaId: 430302, areaLevel: 2, areaName: '雨湖' },
{ areaId: 430304, areaLevel: 2, areaName: '岳塘' }
];
根据areaLevel 来过滤想得到
let arr = [
{ areaId: 430102, province: "湖南", city: "长沙", area: "芙蓉" },
{ areaId: 430103, province: "湖南", city: "长沙", area: "天心" },
{ areaId: 430302, province: "湖南", city: "湘潭", area: "雨湖" },
{ areaId: 430304, province: "湖南", city: "湘潭", area: "岳塘" },
];
麻烦各位大佬帮忙看看
回复
1个回答

test
2024-07-16
let areanames = arr.reduce((o, item) => ((o[item.areaId] = item.areaName), o), {})
arr.filter(i => i.areaLevel == 2).map(i => {
let areaId = i.areaId
return {
areaId: areaId,
province: areanames[String(areaId).slice(0, 2)] || '',
city: areanames[String(areaId).slice(0, 4)] || '',
area: i.areaName
}
})
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容