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

标签 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

最佳答案

使用type.length而不是this.type.length。这里的type不是函数变量,而是参数变量。所以你无法使用 this

进行读取

关于javascript - 无法获取作为函数参数传递的数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49404944/

相关文章:

mongodb - Mongoose 文档类型声明

javascript - 同时旋转和移动图片 Canvas

php - 用 php 类解码 dean edwards javascript 加壳器

javascript - Safari 浏览器只抛出这个 Jquery 错误 div[id^ ='divSelectAll' ] input[id^ ='chk_' ")

Angular:文本搜索 rxjs 问题

javascript - 为什么在 Angular 2 中导入服务时需要 () ?

angular - 缩短 Azure Devops 中 Angular 8 应用程序的生产构建时间

javascript - Typescript:此条件将始终返回 'false',因为类型 'Type' 和 'number' 没有重叠

angularjs - 在 Angular 分量上触发 $scope.$watch

javascript - RxJS.Observable debounce 有什么作用?