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

如何将多维数组转换为对象并保留原二维结构?

二维数组转对象数组的实现方案

原函数的问题在于初始化了一个单一对象存储所有键值对,导致二维结构被扁平化,所有子数组的键都合并到了同一个对象中。要实现需求,需要为每个子数组单独创建对象,再将这些对象收集为数组返回。

实现方式一:使用map + forEach

function toObject(arr) {
  // 遍历外层数组,每个子数组对应一个独立对象
  return arr.map(subArr => {
    const obj = {};
    // 遍历子数组,将元素作为键,索引转字符串作为值
    subArr.forEach((key, index) => {
      obj[key] = index.toString();
    });
    return obj;
  });
}

实现方式二:使用map + Object.fromEntries(更简洁)

function toObject(arr) {
  return arr.map(subArr => 
    // 将子数组转为键值对数组,再直接转换为对象
    Object.fromEntries(subArr.map((key, index) => [key, index.toString()]))
  );
}

验证效果

输入示例:

let multiArr = [["r", "s", "p"], ["w", "u", "i"], ["a", "t", "g"]];
console.log(toObject(multiArr));

输出结果:

[
  { r: "0", s: "1", p: "2" },
  { w: "0", u: "1", i: "2" },
  { a: "0", t: "1", g: "2" }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:51:06