将元素推入数组中的每个索引

时间:2019-04-08 12:27:01

标签: javascript arrays angularjs push associative-array

我有一个数组,我想在每个索引处再添加一个键值对。

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
        }
    }

我正在尝试在ajaxResult中存在的每个数组项上实现* selectedTripLeader。 例如array [0] .push({“ selectedTripLeader”:$ scope.TripLeaderData [0] .Id}) array [1] .push({“ selectedTripLeader”:$ scope.TripLeaderData [0] .Id})

我尝试使用普通的push和prototype.push,但无法正常工作。 使用for循环或每个循环的解决方案都可以

2 个答案:

答案 0 :(得分:0)

在ajaxResult的i索引处,它是一个对象(ajaxResult [i])。您不能在对象上使用推功能,而可以在数组上使用它。要将新的键值对添加到现有对象中,您可以执行以下操作:

var a = {}; a.name ='乔';     要么 a [name] ='Joe';

这两种方法都是在Object中添加新的键值对的方法。

因此在您的情况下,它应该如下所示。

onSubmit={(values, { setSubmitting }) => { ... }

答案 1 :(得分:-1)

如果要向对象添加属性,则可以使用 spread运算符将当前对象与新属性合并:

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
      };
    }
  }