如何映射对象数组中的数据并遍历城市对应的子数组
实现方案
以下为JavaScript环境下的实现逻辑,其他编程语言思路基本一致:
基础源数据定义
const cityData = { "LH": [ "xyz", "CDE", "qwe" ], "KR": [ "ABC", "xyz" ] }
方案1:生成映射对象数组同时遍历子元素
如果你需要将原始结构转为[{city: 城市名, values: 对应子数组}]格式的对象数组,同时遍历每个城市的子元素,可参考以下代码:
const mappedResult = Object.entries(cityData).map(([cityName, valueList]) => { // 遍历当前城市对应的子数组 valueList.forEach(item => { // 此处填写子元素处理逻辑,示例为打印 console.log(`城市${cityName}的子元素:${item}`) }) // 自定义返回映射后的结构 return { city: cityName, values: valueList, // 可按需添加其他字段,示例为统计子元素数量 itemCount: valueList.length } }) // 输出映射后的对象数组 console.log(mappedResult)
输出的映射数组结构:
[ { city: 'LH', values: [ 'xyz', 'CDE', 'qwe' ], itemCount: 3 }, { city: 'KR', values: [ 'ABC', 'xyz' ], itemCount: 2 } ]
方案2:仅遍历所有子元素(无需生成映射数组)
如果你不需要保留映射后的数组结构,只需要遍历所有城市的所有子项,可直接使用以下代码:
Object.entries(cityData).forEach(([cityName, valueList]) => { valueList.forEach(item => { // 此处填写子元素处理逻辑 console.log(cityName, item) }) })
通用逻辑说明
所有语言的实现思路完全一致:
- 第一步获取原始对象的所有键(即所有城市名)
- 第二步遍历城市名,取出对应子数组
- 第三步遍历子数组完成业务逻辑处理
内容的提问来源于stack exchange,提问作者Aqeel Khadim
相关产品推荐
相关产品推荐

