目前我正在尝试使用现有数组将其映射到另一个数组,以匹配服务器所需的内容。
例如......
我有一个数组:
$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
获取所有列表并推送它......但是还没有真正运行得太好......任何帮助都会很棒!
答案 0 :(得分:3)
解决方案可能是:
var list = $scope.users.map(function(user) {
return {
name: user.firstName + ' ' + user.lastName,
value: {
registration: user.registrationNumber,
first: user.firstName,
last: user.lastName
}
};
});
Array.map()遍历现有数组并返回一个新修改过的数组。
因此,您必须在map
上使用$scope.users
,并为每个user
使用您想要返回的新对象。在每次迭代中,您都可以访问每个user
。新对象将存储在list
内,这将是一个数组。