显然,tagObjects
是一个数组,长度为0
。但是,它仍然无法通过检查并导致错误。
TypeError:无法读取未定义的属性“ length”
if (tagObjects != "empty" || tagObjects.length === 0) {
for (var i = 0; i < tagObjects.tags.length; i++) {
temp_tags.push(tagObjects[i].tags);
}
temp_tags.forEach(function(obj) {
if (obj.selected) {
if (vs.tags[map[obj.term]] != undefined) {
vs.tags[map[obj.term]].selected = true;
}
}
});
}
甚至超过了字符串检查!
最佳答案
这是一个OR条件
if (tagObjects != "empty" || tagObjects.length === 0) {
如果不是字符串
"empty"
或没有长度,请继续。换句话说,如果数组不是字符串
"empty"
,则长度无关紧要;如果它是数组,长度可能总是如此?另外,您正在访问
tagObjects.tags
,这表明它既不是字符串也不是数组,而是对象,并且对象没有长度。换句话说,您的
if
条件根本没有意义吗?if (tagObjects != "empty" && tagObjects.length === 0) {