开发者问题收集

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

2018-03-21
219

我将获取一个传入函数参数的数组的长度

我有一个对象数组

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个回答

使用 type.length 而不是 this.type.length 。此处 type 不是函数变量,而是参数变量。因此您无法使用 this 进行读取>

Ankur
2018-03-21

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

Vasyl Moskalov
2018-03-21