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

JavaScript:如何将逗号分隔的邮箱字符串转换为含指定键值对对象的数组?

如何将逗号分隔的邮箱字符串转换为指定的键值对数组

我明白你想要把逗号分隔的邮箱列表转成[{"to": "邮箱地址"}, ...]这种数组结构,之前的两种尝试方向都有点偏,咱们来一步步修正:

先拆解下你之前的问题:

  • 第一种用Object.assign把数组转成对象,得到的是数字索引为键的对象——这是因为数组本身就是带索引的特殊对象,这个方法根本没法生成你要的数组结构。
  • 第二种用reduce的写法搞反了键值关系,而且最后得到的是一个对象,不是数组,自然不符合预期。

正确的实现方法

其实最适合这个场景的是数组的map方法——它可以遍历数组里的每一项,把每一项转换成你想要的格式,最终返回一个新数组,完全匹配你的需求:

var req = { query: { personalize: "email@mail.com,mike@example.com,john@gmail.com" } };
var emailList = req.query.personalize;
// 第一步:把逗号分隔的字符串拆成邮箱数组
var emailArr = emailList.split(",");
// 第二步:用map遍历每个邮箱,生成指定格式的对象
var result = emailArr.map(email => ({ to: email }));
console.log(result);

执行这段代码后,你就能得到期望的结果:

[{"to": "email@mail.com"}, {"to": "mike@example.com"}, {"to": "john@gmail.com"}]

简单解释下原理

map方法会迭代数组中的每一个元素,对每个元素执行你传入的回调函数。这里我们对每个邮箱地址,返回一个{to: email}的对象,所有这些对象会被自动收集成一个新数组,正好就是你需要的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:52:45