无法获取作为函数参数传递的数组的长度

时间:2018-03-21 11:19:15

标签: javascript angular typescript

我会得到一个我在函数参数中传递的数组长度

我有一个对象数组

groupList:group[]=[];

selectItem中我调用testExistinginArray函数

selectItem (event) {
    if(!this.toggle) {
        this.groupList.push(event);
    }
    else{
        this.ejList.push(event);
        if(!this.testExistinginArray(event,this.groupList)) { //I pass groupList as parameter
            this.groupList.push({code:event.codeBusinessGroup,name:event.nameBusinessGroup})
        }
    }
}

testExistinginArray(event,type: any[]) {
    for(let i=0;i<this.type.length;i++) {
        if (this.type[i].code.indexOf(event.codeBusinessGroup)===-1) {
            return false
        }
        else{
            return true
        }
    }
}

实际上我得到了未定义的长度错误

TypeError: Cannot read property 'length' of undefined

2 个答案:

答案 0 :(得分:1)

使用type.length代替this.type.length。这里type不是函数变量,它是参数变量。因此,您无法使用this

进行阅读

答案 1 :(得分:0)

您尝试从length中提取属性this.type,而不是从函数参数type中提取。看起来像拼写错误