用例
我有一组从 REST 请求返回的对象。 Angular 自动使用 $$hashKey
填充每个元素。问题是,当我在该数组中搜索没有 $$hashKey
的对象时,它会返回 -1。这是有道理的。不幸的是,我不知道 $$hashKey
的值。
问题
有没有一种更有效的方法可以在 AngularJS 中从 REST 请求返回的对象集合中搜索对象,而无需删除 $$hashKey
属性?
代码
function arrayObjectIndexOf(arr, obj) {
var regex = /,?"\$\$hashKey":".*?",?/;
var search = JSON.stringify(obj).replace(regex, '');
console.log(search);
for ( var i = 0, k = arr.length; i < k; i++ ){
if (JSON.stringify(arr[i]).replace(regex, '') == search) {
return i;
}
};
return -1;
};
最佳答案
angular.equals()
对没有 $
前缀属性的对象进行深度比较...
function arrayObjectIndexOf(arr, obj){
for(var i = 0; i < arr.length; i++){
if(angular.equals(arr[i], obj)){
return i;
}
};
return -1;
}
关于javascript - 如何获取 AngularJS 响应对象集合中对象的 indexOf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23120077/