arrays - 检查数组是否为空或包含值,打字稿
问题描述
我检查数组是否以这种方式包含值:
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 查询参数,如果它很重要的话。
解决方案
实际上,数组是一个reference type
. 当您想用 进行检查时[ ]
,它们并不相等。它们完全不同,最好用length
. 因此,根据您的代码,您应该执行以下操作:
if (!testArray || testArray.length == 0 || testArray.includes(value)) {
// do something
}
推荐阅读
- javascript - 如何使用 html 和 javascript 在网页上自动播放声音
- git - Git 流发布标签
- nuxt.js - Nuxt 使用 vuex 操作获取数据,但在存储获取器中返回未定义
- javascript - 为什么JS要等到函数完成才改变背景颜色?
- angular - 离子离子选择,离子选择选项
- javascript - 动态添加和删除级联下拉列表行?
- node.js - 获取 TypeError:修改表单后无法读取未定义的属性“原型”
- swift - 如何从登录/注册 AWS Amplify 中获取身份验证错误?
- acumatica - 为什么 AMReleaseProcess 在添加记录时失败?
- java - 文件未找到。Project1.main(Project1.java:24) 的线程“主”java.lang.NullPointerException 中的异常