我需要将父数组中的数组转换为对象,以匹配数据库模型数据。
我有这样的数组:
emails: Array[2]
0: "example@mail.com"
1: "otherexample@mail.com"
id: 1
firstname: "Jane"
lastname: "Doe
我想要实现的是将电子邮件数组转换为对象数组,如下所示:
emails: Array[2]
0:
{
name: "example@mail.com"
}
1:
{
name: "otherexample@mail.com"
}
id: 1
firstname: "Jane"
lastname: "Doe
我尝试使用下面的代码将数组转换为object,但由于某种原因失败了(没有显示数据,->变量rv为空):
var rv = {};
for (var i = 0; i < dbInfo.emails.length; ++i)
if (dbInfo.emails[i] !== undefined) rv[i] = dbInfo.emails[i];
有人知道我的代码失败的原因吗?有人知道这种问题的解决方案吗?
谢谢预支。
发布于 2014-12-30 03:54:34
这是Array.prototype.map
函数的完美用法:
dbInfo.emails = dbInfo.emails.map(function(e) {
return { name: e };
});
也就是说,只需将数组(e
)的每个单独元素转换为对象{ name: email }
发布于 2015-02-24 14:50:21
发布于 2014-12-30 03:51:29
您正在将电子邮件放入一个对象中。相反,您希望将每个电子邮件包装在其自己的对象中,并将其放回数组中。
for (var i = 0; i < dbInfo.emails.length; ++i) {
if(dbInfo.emails[i] !== undefined) {
dbInfo.emails[i] = { name: dbInfo.emails[i] };
}
}
https://stackoverflow.com/questions/27694873
复制相似问题