当值为NULL时,无法读取未定义的属性长度
Cannot read property length of undefined when the value is NULL
我正在尝试读取对象的属性notes
,并且我的代码运行良好。但在某些情况下,当值为NULL时,我会得到以下错误:
无法读取未定义的属性长度
这是我的代码:
(val[i]['notes'].length > 30) ? val[i].substring(0, 30)
变量val包含for中的当前对象。只有当val
的值为:时,问题才会出现
NULL
我该如何避免这种情况?
为您的条件添加更多检查:
(val[i].hasOwnProperty('notes') && val[i]['notes'] && val[i]['notes'].length > 30) ? val[i].substring(0, 30)
在代码中添加一个检查
if(val[i] !== null && val[i]!== undefined){
(val[i]['notes'].length > 30) ? val[i].substring(0, 30)
}
else{
//add a case here
}
你也可以使用
if(val[i]){
(val[i]['notes'].length > 30) ? val[i].substring(0, 30)
}
else {
}
代码的其余部分在哪里?
你有一个没有其他的三元。你的var在哪里?默认值是什么?我希望
var notes = val &&
val[i] &&
val[i]['notes'] &&
val[i]['notes'].length > 30 ? val[i]["notes"].substring(0, 30):"";
相关文章:
- TypeError:无法读取属性'推'未定义的JavaScript
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 未捕获的类型错误:无法读取属性'删除'的未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- angularjs无法读取未定义的属性then
- 无法读取属性'材料'未定义的Three.js
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- JavaScript承诺-无法读取属性'那么'的未定义
- 未捕获的类型错误:无法读取属性'中止'的未定义
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- Javascript未捕获类型错误:无法读取属性'0'的未定义
- jQuery控制台错误:无法读取属性'top'的未定义
- TypeError:无法读取属性'findAll'的未定义
- 无法读取属性'errcap'未定义的jqgrid
- 无法读取未定义的属性“rid”
- 未捕获的类型错误: 无法读取未定义的属性“图像”
- 可以't读取'getHTML'未定义的Liferay CK Editor内容
- 在node.js中未定义读取属性错误