如何从AngularJs中的数组中获取更改的对象?

时间:2017-04-01 17:02:39

标签: angularjs

我有2个数组存储在arr1和arr2

var arr1 = [
  {
    "status": 4,
    "id": 1
  },
  {
    "status": 2,
    "id": 2
  },
  {
    "status": 1,
    "id": 3
  }];

var arr2 = [{
    "status": 4,
    "id": 1
  },
  {
    "status": 2,
    "id": 2
  },
  {
    "status": 4,
    "id": 3
  }];

使用angular.equals(arr1,arr2)来检查2个数组是否相同但是当arr2中的状态发生变化时,我如何从arr2中获取相应的id。

2 个答案:

答案 0 :(得分:1)

这将为您提供包含具有不同状态值的元素的ID的数组。

 var elementsChanged = arr1.map((val, idx) => {
        if (val.status !== arr2[idx].status)
          return arr2[idx].id
      })

答案 1 :(得分:1)

您需要先将arr2放入$ scope中,然后在数据上设置$watch以检测确切的ID更改。 $scope.$watch('arr2', function(newValue, oldValue){.//iterate and detect your id change..}, true);

观察者

Demo

带有@korte地图建议的

Demo Updated