仅向数组

时间:2015-11-05 14:01:12

标签: javascript arrays angularjs object

我有函数创建的对象:

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

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

我已经尝试过每个函数调用用foreach扫描表格,但没有给我带来理想的效果。请帮忙。

1 个答案:

答案 0 :(得分:4)

试试这个

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)
  }
}