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

如何在JavaScript中将对象数组转换为以platform为键的新对象

把数组形式的posters转为指定键值对对象的实现方法

首先注意你提供的原数据有个小问题:platform的取值(facebook、instagram)需要用字符串引号包裹,不然会被JS当作未定义的变量处理,修正后的原数据应该是这样:

const posters = [
  { platform: "facebook", name: ["user test1","user test2"] },
  { platform: "instagram", name: ["Ig test1","Ig test2"] },
];

下面是几种可行的实现方式:

方法1:使用Array.reduce(最常用)

reduce方法可以直接遍历数组并构建目标对象,逻辑清晰且高效:

const transformedPosters = posters.reduce((acc, item) => {
  acc[item.platform] = item.name;
  return acc;
}, {});

console.log(transformedPosters);
// 输出:{ facebook: ["user test1","user test2"], instagram: ["Ig test1","Ig test2"] }

方法2:使用Object.fromEntries(ES2019+ 简洁写法)

如果你的运行环境支持ES2019及以上,可以用这个更简洁的写法,先把数组转成[键, 值]的二维数组,再直接转为对象:

const transformedPosters = Object.fromEntries(
  posters.map(item => [item.platform, item.name])
);

console.log(transformedPosters);
// 输出同上

方法3:使用forEach循环(直观易懂)

如果是初学者,forEach的写法更直观,容易理解:

const transformedPosters = {};
posters.forEach(item => {
  transformedPosters[item.platform] = item.name;
});

console.log(transformedPosters);
// 输出同上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:15:26