javascript - 将字符串数组转换为对象数组的最佳方法是什么?

标签 javascript arrays

假设我有一组电子邮件:

['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/

相关文章:

javascript - Multiscroll.js 的导航问题

javascript - 如何更改 Highchart 工具提示的对齐方式?

java - 从一个原始整数列表生成打乱整数列表的算法

arrays - Guid 数组到字符串和返回的最快转换?

java - 寻找 double 子集的有效算法和子集在一起

javascript - 如何替换绝对浏览器 URL? (而不是 .pushState() 的相对 URL 分配)

javascript - 如果移动应用程序将在 React Native 中,那么在 React JS 中设置 Web 应用程序是否有优势

javascript - Python JSON 到 JavaScript

ruby-on-rails - Ruby 从数组中随机选择有时会重复返回相同的值

Java:打印出args数组中的所有整数