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

问题描述 投票:0回答:2

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

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循环或每个循环的解决方案都可以

javascript arrays angularjs push associative-array
2个回答
-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
      };
    }
  }

0
投票

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

var a = {}; a.name = '乔';或者[名字] ='乔';

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

所以在你的场景中,它应该如下给定的代码。

 ajaxResult[i].selectedTripLeader= $scope.TripLeaderData[0].Id
                          OR
 ajaxResult[i]['selectedTripLeader'] = $scope.TripLeaderData[0].Id
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.