Javascript 仅将唯一对象添加到阵列

Javascript 仅将唯一对象添加到阵列,javascript,arrays,angularjs,object,Javascript,Arrays,Angularjs,Object,我已通过函数创建了对象: $scope.checkPosRole = function(possition , posRole , posFunction) { var rolePos = {pos: possition, posRole: posRole, posFunction: posFunction}; $scope.rolePossition.push(rolePos); }; 问题是,我希望数组中只有1个对象具有指定值pos。如果对象添加了数组中已经存在的值po

我已通过函数创建了对象:

$scope.checkPosRole = function(possition , posRole , posFunction) {
   var rolePos = {pos: possition, posRole: posRole, posFunction: posFunction}; 
   $scope.rolePossition.push(rolePos);
   };
问题是,我希望数组中只有1个对象具有指定值
pos
。如果对象添加了数组中已经存在的值
pos
,我想用数组中已经存在的对象替换新对象

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

试试这个

var角色位置=[{id:1},{id:2},{id:3}];
函数addRolePosition(数据){
var指数=-1;
对于(变量i=0,i-1){
角色位置[索引]=数据;
}否则{
角色定位推送(数据)
}
}
试试这个

var角色位置=[{id:1},{id:2},{id:3}];
函数addRolePosition(数据){
var指数=-1;
对于(变量i=0,i-1){
角色位置[索引]=数据;
}否则{
角色定位推送(数据)
}
}
项目顺序是否重要?如果不是,只需使用一个对象而不是数组:
rolePositions[rolePos.position]=rolePos
。项目顺序是否重要?如果没有,只需使用一个对象而不是数组:
rolePositions[rolePos.position]=rolePos
。可能的重复项