如何使用forEach向类似于push(array)的对象添加值

时间:2019-01-11 17:25:23

标签: angular object foreach

我目前正努力为对象添加一些数字,就像我们使用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

1 个答案:

答案 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;
}, {});