使用&#34将此函数分配给引用自身的数组对象;此"

时间:2017-12-27 18:15:58

标签: javascript arrays angularjs

我的控制器中有一个名为myList的对象数组。

我想要一种干净的方法来检查对象数组是否有一个已经具有特定id的对象。

对象结构如下所示:

myList: [
    {
        id: <integer>,
        .
        .
        .
    },
    ...
]

在我的控制器中假设var ctrl = this;和我的onInit函数:

function onInit() {
    $log.debug(ctrl);
    ctrl.myList.includes = function(id) {
        var found = false;
        for (var index=0; index < this.length; index++) {
            if (this[index].id === id) {
                found = true;
                break;
            }
        }
        return found;
    }
}

现在,稍后我的代码在控制器的其他地方:

if (!ctrl.myList.includes(id) {
    // Do something...
}

这是在我this includes函数中使用myList关键字的正确方法吗? 控制台不会抛出任何错误 - 所以语法上这是正确的,但它不起作用。 也许还有更好的办法。

感谢。

1 个答案:

答案 0 :(得分:2)

没有必要重新发明轮子 使用Array.prototype.some()

  

GetPersona方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。

some()