Как добавить значения к объектам, похожим на push (массив), используя forEach - PullRequest
0 голосов
/ 11 января 2019

В настоящее время я пытаюсь добавить несколько чисел к объекту, как мы делаем для массивов, используя 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
};

Значение = позиция массива

Key = sequenceNumber

1 Ответ

0 голосов
/ 11 января 2019

В этом случае вы можете использовать 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;
}, {});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...