当值为NULL时,无法读取未定义的属性长度

Cannot read property length of undefined when the value is NULL

本文关键字:未定义 读取 属性 NULL      更新时间:2023-09-26

我正在尝试读取对象的属性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):"";