将相同的属性:值对添加到数组中的多个对象

时间:2016-03-03 18:19:42

标签: javascript arrays angularjs object push

我有两个数组,它们的结构几乎完全相同,除了一个数组在每个对象上都有一个property:value对,另一个没有。

Newcastle数组( clubCode属性)

 [
            {"clubCode": "newcastle-united",
                "firstName": "Tim",
                "lastName": "Krul",
                "position": "gk"},

            {"clubCode": "newcastle-united",
                "firstName": "Rob",
                "lastName": "Elliot",
                "position": "gk"}
]

阿森纳阵列(没有 clubCode属性)

 [
            {"firstName": "Petr",
                "lastName": "Cech",
                "position": "gk",

            {"firstName": "David",
                "lastName": "Ospina",
                "position": "gk"}
] 

是否有可能push() clubCode属性阿森纳阵列中的每个对象,所以我不必手动将它添加到每一个<? / p>

...所以每个对象都以"clubCode": "arsenal"开头。

或者,如果有任何其他解决方案,我很乐意听到它。

任何帮助将不胜感激。提前谢谢。

4 个答案:

答案 0 :(得分:4)

您可以在数据结构上使用Array.prototype.forEach

var x =  [
            {"firstName": "Petr",
                "lastName": "Cech",
                "position": "gk",
            },
            {"firstName": "David",
                "lastName": "Ospina",
                "position": "gk"}
         ]; 

x.forEach(function(e){e.clubCode='arsenal';})

答案 1 :(得分:1)

尝试在此背景下使用Array.prototype.map()

arsenalArray = arsenalArray.map(function(itm){
  return (itm.clubCode = "arsenal", itm);
});

DEMO

答案 2 :(得分:0)

    $scope.ar1 = [
            {"clubCode": "newcastle-united",
                "firstName": "Tim",
                "lastName": "Krul",
                "position": "gk"},

            {"clubCode": "newcastle-united",
                "firstName": "Rob",
                "lastName": "Elliot",
                "position": "gk"}
];

    $scope.ar1.forEach(function (value) {
      value.clubCode = "newcastle-united";
    });

    console.log($scope.ar1);

答案 3 :(得分:0)

使用lodash.js非常容易

_ .assign(arsenalArray,{clubCode:“arsenal”});