对象在数组中,但indexOf没有找到dit

时间:2014-09-03 11:02:24

标签: javascript angularjs

我想要的是用另一个对象替换对象$ scope.users数组中的元素。 我想这样做:

步骤1找到我要替换的对象

var myValue;
myValue = $filter('filter')($scope.users,{email: "email"});

它给了我想要的对象

第2步编辑:myValue现在包含从数组$ scope.users中提取的确切对象,所以现在我要查找它并找到它的索引。

var index  = $scope.users.indexOf(myValue);

然后返回-1,所以错误......

$ scope.users就是那样

[Object { id=10, username="Eagle1", username_canonical="eagle1", more...}, Object { id=11, username="Pedro", username_canonical="pedro", more...}, Object { id=12, username="Carine", username_canonical="carine", more...}, Object { id=16, username="stephane", username_canonical="stephane", more...}, Object { id=17, username="throwError", username_canonical="throwerror", more...}]

并且在过滤器myValue之后就是这样:

[Object { id=17, username="throwError", username_canonical="throwerror", more...}]

编辑:我解决了这个问题:

var index = $scope.users.map(function(e){return e.keytofind}).indexOf("keytofind");

1 个答案:

答案 0 :(得分:1)

我认为它类似于:

var elementPos = array.map($filter('filter')($scope.users,{email: "email"}))
                      .indexOf(idYourAreLookingFor);
var objectFound = array[elementPos];