Javascript 如何将一个数组映射到另一个具有不同值的数组(angularJs)

Javascript 如何将一个数组映射到另一个具有不同值的数组(angularJs),javascript,angularjs,arrays,Javascript,Angularjs,Arrays,目前,我正在尝试使用现有阵列将其映射到另一个阵列,以匹配服务器所需的内容 例如 我有一个数组: $scope.users = [{ "firstName": "john", "middleName": null, "lastName": "doe", "registrationNumber": "334" }, { "firstName": "paul", "middleName":

目前,我正在尝试使用现有阵列将其映射到另一个阵列,以匹配服务器所需的内容

例如

我有一个数组:

$scope.users = [{
        "firstName": "john",
        "middleName": null,
        "lastName": "doe",
        "registrationNumber": "334"
    },
    {
        "firstName": "paul",
        "middleName": null,
        "lastName": "dean",
        "registrationNumber": "223"
    },
    {
        "firstName": "andrew",
        "middleName": null,
        "lastName": "mac",
        "registrationNumber": "132"
    }
]
但是我希望它看起来像这样

[{
    name: "john doe",
    value: {
        registration: 334,
        last: "doe",
        first: "john"
    }
}]
所以我一直在做类似这样的事情来描绘它…但它只得到第一个

var list = [{
    name: $scope.users[0].firstName + ' ' + $scope.users[0].lastName,
    value: {
        registration: $scope.users[0].registrationNumber,
        first: $scope.users[0].firstName,
        last: $scope.users[0].lastName
    }
}];
我尝试使用
angular.forEach
获取所有列表并将其推送…但实际效果还不太好。。。任何帮助都会很好

解决方案可以是:

var list = $scope.users.map(function(user) {
    return {
        name: user.firstName + ' ' + user.lastName,
        value: {
            registration: user.registrationNumber,
            first: user.firstName,
            last: user.lastName
        }
    };
});
解释 迭代现有数组并返回一个新的修改数组


因此,您必须在
$scope.users
上使用
map
,并为每个
用户
返回一个新对象。在每次迭代中,您都可以访问每个
用户
。新对象将存储在
列表
中,该列表将是一个数组

听说过Array.map吗?对Array.map的支持已经存在多年了(请注意