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

JavaScript中如何将两个数组转换为指定格式的对象数组?

解决箭头函数返回对象时的语法错误

你遇到的报错是因为箭头函数直接返回对象字面量时,必须用圆括号把对象包起来——JS会把对象的{}当成函数体的起始/结束标记,而不是对象字面量,所以解析到:的时候就报错了。

修正后的基础代码

const array3 = people.map(x => ({
  person: x,
  subscriptions: subscriptions.filter(y => y.number === x.number)
}));

性能优化建议

如果subscriptions数组比较大,每次filter都遍历整个数组会拖慢效率。可以先把订阅数据转成以number为键的映射表,之后直接通过人员编号取对应的订阅:

// 先构建订阅映射:key是number,value是对应订阅数组
const subscriptionMap = {};
subscriptions.forEach(sub => {
  if (!subscriptionMap[sub.number]) {
    subscriptionMap[sub.number] = [];
  }
  subscriptionMap[sub.number].push(sub);
});

// 再生成目标数组
const array3 = people.map(x => ({
  person: x,
  subscriptions: subscriptionMap[x.number] || []
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:05:23