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

如何将JavaScript二维数组转换为带递增标识符的对象

将二维数组转换为带递增标识符的对象

你需要把二维数组转换成以person1、person2这类递增字符串为键的单个对象,而不是对象数组。你的map方法会生成对象数组,和目标结构不符,这里可以用reduce方法来实现需求:

实现代码

const formData = [
    ["Lisa", "Heinz"],
    ["Bob", "Sleigh"]
];

const result = formData.reduce((acc, item, index) => {
    // 生成递增的person键,索引从0开始,所以加1得到1、2...
    const personKey = `person${index + 1}`;
    // 给累加器添加对应的键值对
    acc[personKey] = {
        name: item[0],
        last_name: item[1]
    };
    return acc;
}, {}); // 初始化累加器为空对象

console.log(result);

输出结果

运行后会得到符合要求的合法JS对象:

{
  person1: { name: 'Lisa', last_name: 'Heinz' },
  person2: { name: 'Bob', last_name: 'Sleigh' }
}

原理说明

reduce方法会遍历数组的每一项,通过累加器(acc)逐步构建最终的对象。每遍历到一个数组项,就根据当前索引生成对应的personN键,把数组项转换成包含name和last_name的子对象并赋值给这个键,最后返回累加器即可得到目标结构。这种方法可以无限扩展,不管数组有多少项,都会自动生成对应的person键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:20:40