You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将扁平数组转换为嵌套结构的JSON API响应

正确实现方案

问题说明

你当前的代码仅收集了每个国家对应的城市名称列表,既没有做二级嵌套结构,也没有存储对应用户的user_id和ssn字段,所以无法得到预期输出。

实现代码

const nestedResult = {};
// flatArray替换为你从数据库查询得到的原始扁平数组
flatArray.forEach(user => {
  const { user_country: country, user_city: city, user_id, ssn } = user;
  // 如果需要ssn转为字符串格式,把下面ssn改为ssn: String(ssn)即可
  const userItem = { user_id, ssn };

  // 初始化国家层级结构
  if (!nestedResult[country]) {
    nestedResult[country] = [];
  }

  // 查找当前国家下是否已存在对应城市的分组
  const existCityGroup = nestedResult[country].find(group => Object.hasOwn(group, city));
  if (!existCityGroup) {
    // 不存在城市分组则新建后推入国家数组
    nestedResult[country].push({ [city]: [userItem] });
  } else {
    // 已存在城市分组则直接追加用户信息
    existCityGroup[city].push(userItem);
  }
});

// 输出格式化后的结果验证
console.log(JSON.stringify(nestedResult, null, 2));

补充说明

你给出的预期输出里第一条用户的ssn值为"7"属于笔误,代码默认保留原始数据的229,按上述注释修改即可完全匹配你要求的输出格式。


内容的提问来源于stack exchange,提问作者PKP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:24:05