javascript - 如何获取 AngularJS 响应对象集合中对象的 indexOf?

标签 javascript arrays angularjs

用例

我有一组从 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/

相关文章:

java - 如何使用ArrayList存储多行信息?

Angularjs;在服务中使用 $http 返回引用而不是实际数据

javascript - AngularJs ng-模式正则表达式

java - 使用 Java 代码中的 Javascript 函数关闭 Windows 资源管理器弹出窗口

javascript - 使用 TAL :defined variable in javascript

JavaScript:如何在表达式中多次获取和使用一个值

c - 动态数组的重新分配?

javascript - Angular DataTables.net 自定义按钮

java - Java 中的循环问题

javascript - Angularjs 中 ng-view 位置更改后突出显示文本