我有通过函数创建的对象:

$scope.checkPosRole = function(possition , posRole , posFunction) {
   var rolePos = {pos: possition, posRole: posRole, posFunction: posFunction};
   $scope.rolePossition.push(rolePos);
   };


问题是我想在数组中只有1个具有指定值pos的对象。如果添加对象的值pos已经存在于数组中,那么我想将新对象与数组中已经存在的对象交换。

我已经尝试过每个函数调用都使用foreach扫描表,但是并没有带来令人满意的效果。请帮忙。

最佳答案

尝试这个



var rolePosition = [{ id: 1}, {id: 2}, {id: 3}];

function addRolePosition(data) {
  var index = -1;

  for(var i = 0, i < rolePosition.length; i++) {
    if(rolePosition[i].id === data.id) {
      index = i;
    }
  }

  if(index > -1) {
    rolePosition[index] = data;
  } else {
    rolePosition.push(data)
  }
}

07-24 16:17