我目前正努力为对象添加一些数字,就像我们使用push()进行数组操作一样。
我有一个看起来像这样的数组:
$scope.order = [
{sequenceNumber:1},
{sequenceNumber:2},
{sequenceNumber:3}
];
我正在使用forEach方法将数字添加到对象“ newOrder”
var newOrder = {};
angular.forEach($scope.order, function(orderValue) {
newOrder = orderValue.sequenceNumber;
});
但是...这不会返回我想要的结果
我希望“ newOrder”看起来像这样:
var newOrder = {
1: 1,
2: 2,
3: 3
};
值=数组的位置
键= sequenceNumber
答案 0 :(得分:1)
在这种情况下,您可以使用Array.prototype.reduce
,就像这样:
var newOrder = $scope.order.reduce(function(acc, item, index) {
acc[item.sequenceNumber] = index;
return acc;
}, {});
或更短的等效项:
var newOrder = $scope.order.reduce((acc, {sequenceNumber}, index) => {
acc[sequenceNumber] = index;
return acc;
}, {});