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

Adding same property:value pair to multiple objects in array

本文关键字:数组 添加 对象 属性      更新时间:2023-09-26

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

纽卡斯尔阵列(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"}
] 

是否可以将 clubCode 属性push()到 Arsenal 数组中的每个对象,这样我就不必手动将其添加到每个对象中?

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

或者,如果有任何其他解决方案,我很想听听。

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

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

var x =  [
            {"firstName": "Petr",
                "lastName": "Cech",
                "position": "gk",
            },
            {"firstName": "David",
                "lastName": "Ospina",
                "position": "gk"}
         ]; 
x.forEach(function(e){e.clubCode='arsenal';})

尝试在此上下文中使用Array.prototype.map()

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

演示

    $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);

使用lodash非常容易.js

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