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的支持已经存在多年了(请注意