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

如何将嵌套数组转换为指定结构的对象?

实现嵌套数组转指定结构对象的几种方法

嘿,这需求很容易实现,我给你几个实用的方案,你可以按需选择:

方法一:forEach循环(直观易懂,适合新手)

这种方式逻辑最直白,遍历原数组的同时给目标对象添加属性:

var array = [["k001" , "water bottle", 5] , ["k002" , "doll" , 7] , ["k003" , "lollipop" , 2] ];
const products = {};

// 遍历数组,index从0开始,所以加1得到item1、item2...
array.forEach((item, index) => {
  products[`item${index + 1}`] = item;
});

console.log(products);
// 输出:{ item1: ["k001", "water bottle", 5], item2: ["k002", "doll", 7], item3: ["k003", "lollipop", 2] }

方法二:reduce方法(简洁的函数式风格)

如果你喜欢更紧凑的写法,reduce可以一步完成对象的构建:

var array = [["k001" , "water bottle", 5] , ["k002" , "doll" , 7] , ["k003" , "lollipop" , 2] ];

const products = array.reduce((result, currentItem, index) => {
  result[`item${index + 1}`] = currentItem;
  return result;
}, {}); // 初始值是空对象

console.log(products);

方法三:Object.fromEntries(ES2019+ 一行搞定)

如果你的运行环境支持ES2019及以上版本,可以用这个更简洁的写法:

var array = [["k001" , "water bottle", 5] , ["k002" , "doll" , 7] , ["k003" , "lollipop" , 2] ];

const products = Object.fromEntries(
  array.map((item, index) => [`item${index + 1}`, item])
);

console.log(products);

原理是先把原数组映射成[键名, 对应值]的二维数组,再用Object.fromEntries直接转换成目标对象。

这三种方法都能完美得到你想要的products结构,随便挑一种用就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 11:22:37