Вставить элемент в каждый индекс в массиве - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть массив, я хочу добавить еще одну пару значений ключа для каждого индекса.

var ajaxResult = ajaxGet("URL");
    if (ajaxResult.length > 0) {
        for (var i = 0; i < ajaxResult.length; i++) {
            debugger

            ajaxResult[i].prototype.push.apply({ "selectedTripLeader": $scope.TripLeaderData[0].Id });
            debugger
        }
    }

Я пытаюсь достичь * selectedTripLeader для каждого элемента массива, присутствующего в ajaxResult. * Например, массив [0] .push ({"selectedTripLeader": $ scope.TripLeaderData [0] .Id}) массив [1] .push ({"selectedTripLeader": $ scope.TripLeaderData [0] .Id})

iпытался использовать обычный push и prototype.push, но он не работает.Решение для цикла for или для каждого цикла будет в порядке

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

При индексе i в ajaxResult, его объект (ajaxResult [i]).Вы не можете использовать функцию push для объекта, вы можете использовать его для массива.Чтобы добавить новую пару ключ-значение внутри существующего объекта, вы можете сделать следующее:

var a = {};a.name = 'Джо';ИЛИ a [name] = 'Joe';

Оба способа добавления новой пары ключ-значение в Object.

Таким образом, в вашем сценарии это должно быть так, как показано в приведенном ниже коде.

 ajaxResult[i].selectedTripLeader= $scope.TripLeaderData[0].Id
                          OR
 ajaxResult[i]['selectedTripLeader'] = $scope.TripLeaderData[0].Id
0 голосов
/ 08 апреля 2019

Если вы хотите добавить свойство к вашему объекту, вы можете использовать оператор распространения , чтобы объединить текущий объект с вашим новым свойством:

var ajaxResult = ajaxGet("URL");
  if (ajaxResult.length > 0) {
    for (var i = 0; i < ajaxResult.length; i++) {
      ajaxResult[i] = {
        ...ajaxResult[i],
        selectedTripLeader: $scope.TripLeaderData[0].Id
      };
    }
  }
...