首页 > 解决方案 > 检查数组是否为空或包含值,打字稿

问题描述

我检查数组是否以这种方式包含值:

testArray.includes(value)

如果数组为空或包含该值,我需要执行相同的操作。所以我有这个条件:

if (testArray == [] || testArray.includes(value)) {
    // do something
}

但是typescript即使testArray == []. 所以我收到一个错误testArray.includes is underfined

我知道我可以这样修复它:

if (testArray == []) {
    // do something
} else if (testArray.includes(value)) {
    // do the same thing
}

但它看起来不太好。有没有办法把它放在一个if中?

testArray是一个 openapi 查询参数,如果它很重要的话。

标签: arraystypescript

解决方案


实际上,数组是一个reference type. 当您想用 进行检查时[ ],它们并不相等。它们完全不同,最好用length. 因此,根据您的代码,您应该执行以下操作:

if (!testArray || testArray.length == 0 || testArray.includes(value)) {
    // do something
}

推荐阅读