我需要员工对象的索引才能在angularjs中执行更新操作。我正在使用$ routeParams和发送参数(即/ employee /:guid)并将其接收为var guid = $routeParams.guid;
。然后我需要索引才能将我的员工对象放在这里。所以我写了函数来获取像这样的索引:
function getSelectedIndex(guid){
for(var i=0; i<$scope.employees.length; i++){
if($scope.employees[i].guid==guid)
return i;
return -1;
}
};
如果我选择拥有index>0
的员工,则此功能不起作用。如果有人知道解决此问题的更好方法,请帮助我!
答案 0 :(得分:0)
尝试一下
function getSelectedIndex(guid){
for(var i=0; i<$scope.employees.length; i++){
if($scope.employees[i].guid==guid){
return i;
}
}
return -1;
};
答案 1 :(得分:0)
原始功能的问题是,无论for
是否匹配,您都将在if
循环的第一次迭代之后返回。
但是我只使用findIndex()
-更简单易读:
let employees = [
{guid: 10, name: "Mark"},
{guid: 12, name: "Joe"},
{guid: 13, name: "Beth"},
{guid: 14, name: "Steve"}
]
let guid = 13
let index = employees.findIndex(emp => emp.guid === guid)
console.log(index)
console.log(employees[index])