假设我有一组电子邮件:
['a@gmail.com', 'b@gmail.com', 'c@gmail.com']
我需要将它转换成如下所示的对象数组:
[
{
id: 'a@gmail.com',
invite_type: 'EMAIL'
},
{
id: 'b@gmail.com',
invite_type: 'EMAIL'
},
{
id: 'c@gmail.com',
invite_type: 'EMAIL'
}
]
为此,我编写了以下代码:
$scope.invites = [];
$.each($scope.members, function (index, value) {
let inviteMember = {
'id': value,
invite_type: 'EMAIL'
}
$scope.invites.push(inviteMember);
});
有更好的方法吗?
最佳答案
因为您已经在使用 jQuery,所以您可以使用 jQuery.map()
像这样:
var originalArray = ['a@gmail.com', 'b@gmail.com', 'c@gmail.com']
var newArray = jQuery.map(originalArray, function(email) {
return {
id: email,
invite_type:'EMAIL'
};
});
jQuery.map()
将给定数组中的所有项目转换为新的项目数组。我传递给 jQuery.map()
的函数为原始数组的每个元素调用并返回一个写入最终数组的新元素。
还有原生Array.prototype.map()
这是not supported in IE8 .如果您的目标不是 IE8 或者您使用了 polyfill,那么您可以使用原生的 .map()
:
var newArray = originalArray.map(function(email) {
return {
id: email,
invite_type:'EMAIL'
};
});
关于javascript - 将字符串数组转换为对象数组的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38739136/