在数组中的每个索引处推送元素

Push element at each index in an 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
        }
    }

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

我试过使用普通推送和 prototype.push 但它不起作用。 使用 for 循环或 for each 循环的解决方案就可以了

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

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

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

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

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

因此在您的场景中,它应该如下所示。

 ajaxResult[i].selectedTripLeader= $scope.TripLeaderData[0].Id
                          OR
 ajaxResult[i]['selectedTripLeader'] = $scope.TripLeaderData[0].Id