angular - 无法读取属性长度
问题描述
我在这里有一个方法,我在循环中获取数组的长度,我有点困惑,因为这个错误只是有时而不是总是发生。有时我能够在我的文本框中获取过滤后的值,而有时我无法尝试删除设置超时,但每当我遇到此错误时,它不会显示过滤名称。为什么会这样?
SubName(subjec: string[], compar: string[]) {
setTimeout(() => {
this.len = subjec.length;
this.len2 = compar.length;
this.filteredName = [];
for(var i = 0; i< this.len; i++) {
if(compar.indexOf(subjec[i]) === -1){
this.filteredName.push(subjec[i]);
}
}
for(var j = 0; j<this.len2; j++) {
if(subjec.indexOf(compar[j]) === -1){
this.filteredName.push(compar[j]);
}
}
console.log("Names = " + this.filteredName);
return this.filteredName;
}, 500);
}
解决方案
您可以使用三元运算符摆脱该错误
SubName(subjec: string[], compar: string[]) {
setTimeout(() => {
this.len = subjec== undefined ? subjec : subjec.length;
this.len2 = compar== undefined ? compar: compar.length;
this.filteredName = [];
for(var i = 0; i< this.len; i++) {
if(compar.indexOf(subjec[i]) === -1){
this.filteredName.push(subjec[i]);
}
}
for(var j = 0; j<this.len2; j++) {
if(subjec.indexOf(compar[j]) === -1){
this.filteredName.push(compar[j]);
}
}
console.log("Names = " + this.filteredName);
return this.filteredName;
},500);
}
推荐阅读
- corda - 将一个cordapp作为corda jar依赖添加到其他corda项目
- kubernetes - 启用 webhook 身份验证 kubelet api
- java - JavaFX 帮助实现拖放
- java - 检索无法反序列化的 Kafka 消息的有效负载和标头
- c - 如何从 Windows 命名管道中读取超时?
- android - RestrictTo 不限制使用受限方法
- java - AES 加密函数返回 null
- linux - 无法生成预期结果的 Linux bash 脚本
- html - 将文件路径转换为可点击的超链接红宝石
- javascript - 如果 div 不为空,如何启用按钮?