显然,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) {

08-16 00:21