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

如何将多层嵌套对象数组转换为一维数组?

解决方案:将嵌套对象数组转换为动态一维数组

没问题,我来帮你搞定这个数组转换的需求!你需要把每个对象里的id和value对象中的所有属性值,按顺序放到一个子数组里,而且value的属性是动态的——不管它有多少个键,都能自动提取出来。

实现代码

// 你的原始数组
const originalArray = [
  { "id": "59cf758f7bdf8d2e0c1c68c7", "value": { "city": "Mahbubnagar", "state": "Andhra Pradesh", "country": "India" } },
  { "id": "59cf758f7bdf8d2e0c1c68c8", "value": { "city": "Udgir", "state": "Maharashtra", "country": "India" } },
  { "id": "59cf758f7bdf8d2e0c1c68c9", "value": { "city": "Umarga", "state": "Maharashtra", "country": "India" } },
  { "id": "59cf758f7bdf8d2e0c1c68ca", "value": { "city": "Umarkhed", "state": "Maharashtra", "country": "India" } },
  { "id": "59cf758f7bdf8d2e0c1c68cb", "value": { "city": "Umred", "state": "Maharashtra", "country": "India" } }
];

// 转换逻辑
const finalArray = originalArray.map(item => {
  // 先放入id,再展开value对象的所有属性值
  return [item.id, ...Object.values(item.value)];
});

console.log(finalArray);

代码说明

  • map方法遍历原始数组的每个元素,对每个对象进行转换;
  • Object.values(item.value)会把value对象里的所有属性值提取成一个数组,比如["Mahbubnagar", "Andhra Pradesh", "India"];
  • 用扩展运算符...把这个值数组展开,和item.id一起组成新的子数组,这样不管value里新增多少个属性(比如以后加个zipCode),代码都能自动适配,不用手动修改。

转换后的结果

运行代码后,你会得到和预期一致的结构:

[
  ["59cf758f7bdf8d2e0c1c68c7", "Mahbubnagar", "Andhra Pradesh", "India"],
  ["59cf758f7bdf8d2e0c1c68c8", "Udgir", "Maharashtra", "India"],
  ["59cf758f7bdf8d2e0c1c68c9", "Umarga", "Maharashtra", "India"],
  ["59cf758f7bdf8d2e0c1c68ca", "Umarkhed", "Maharashtra", "India"],
  ["59cf758f7bdf8d2e0c1c68cb", "Umred", "Maharashtra", "India"]
]

之前你写的代码只提取了id,现在这个方案补上了动态提取value属性值的逻辑,完美匹配你的需求~

内容的提问来源于stack exchange,提问作者طلحة

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:28:37