如何获取所选对象的索引?

时间:2018-09-12 18:00:44

标签: javascript

我需要员工对象的索引才能在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的员工,则此功能不起作用。如果有人知道解决此问题的更好方法,请帮助我!

2 个答案:

答案 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])