在ng-repeat混合/合并中有两个对象

时间:2015-02-11 15:21:14

标签: arrays angularjs merge angularjs-ng-repeat ng-repeat

我有两个对象,例如:

[
  {
    "some": "thing",
    "lol": "asd",
    "rotfl": "id321ddk",
    "hello": "world000"
  },
  {
    "some": "thing2",
    "lol": "asd2",
    "rotfl": "oddddk2",
    "hello": "wwwworld2"
  },
  {
    "some": "thing3",
    "lol": "asd3",
    "rotfl": "idkkk3",
    "hello": "worldd"
  }
]

^第一个:现在是第二个:

[
  {
    "id": 1,
    "img": "link",
    "name": "idk"
  },
  {
    "id": 2,
    "img": "link2",
    "name": "asdette"
  }
]

正如你所看到的,它们是非常不同的,一切也是长度。 我需要做这样的事情:

[
  {
    "some": "thing",
    "lol": "asd",
    "rotfl": "id321ddk",
    "hello": "world000",
    "id": 1,
    "img": "link",
    "name": "idk"
  },
  {
    "some": "thing2",
    "lol": "asd2",
    "rotfl": "oddddk2",
    "hello": "wwwworld2",
    "id": 2,
    "img": "link2",
    "name": "asdette"
  },
  {
    "some": "thing3",
    "lol": "asd3",
    "rotfl": "idkkk3",
    "hello": "worldd"
  }
]

所以我想将第二个数组添加到第一个数组中。但如果第二个数组“完成”,那么停止添加它。

我们也可以没有“id”字段,这并不重要..

这种方式在angularJS中是否可行? 我正在使用角度和离子。 谢谢!

1 个答案:

答案 0 :(得分:0)

这是你想要实现的目标吗?

var arr1 = [
  {
    "some": "thing",
    "lol": "asd",
    "rotfl": "id321ddk",
    "hello": "world000"
  },
  {
    "some": "thing2",
    "lol": "asd2",
    "rotfl": "oddddk2",
    "hello": "wwwworld2"
  },
  {
    "some": "thing3",
    "lol": "asd3",
    "rotfl": "idkkk3",
    "hello": "worldd"
  }
];
    var arr2 = [
  {
    "id": 1,
    "img": "link",
    "name": "idk"
  },
  {
    "id": 2,
    "img": "link2",
    "name": "asdette"
  }
];

//Assuming arr2.length <= arr1.length
for (var i = 0; i < arr2.length; i++) {
  angular.extend(arr1[i], arr2[i]);
}

console.log(arr1);