javascript - 为什么不返回结果的数组上的过滤器方法不会在javascript中给出一个空数组?
问题描述
我正在尝试在 Javascript 中的数组上使用带有过滤器方法的条件。我遇到的问题是将一个空数组与一个应该为空的过滤数组进行比较,因为过滤器没有返回任何结果,并且根据MDN 文档应该返回一个空数组并没有达到预期的结果。
我尝试在终端的 Node.js 会话以及https://www.codewars.com的测试环境中创建空数组。
// 我的终端上的节点环境
const emptyArr = []
const arr2 = [1, 1, 2, 2]
const testArr = arr2.filter((iso) => iso >= 3)
testArr === emptyArr //prints false, but should be true
预期的结果应该是真的,因为根据 MDN,一个空过滤器会返回一个空数组。然而,实际结果是错误的,这意味着过滤后的数组实际上不是空的。
解决方案
这是一个回答这个问题的帖子: https ://stackoverflow.com/a/38548366/4447481
[] === []
是false
因为它们是两个不同的空数组。
您需要比较两个数组的内容以确定相等性。
在您的情况下,您可能需要检查长度,如下所示:
if(!arr1.length && !arr2.length) {
/* do something */
}
推荐阅读
- javascript - expo SQL lite 是否允许带有事务的 promise disposer 模式?
- python - 从无组织的单词列表中组织一个用逗号分隔的单词列表(仅在可能的情况下提供提示)
- javascript - karma-typescript 被 .d.ts 打字混淆为无法绑定到 npm 包代码
- ios - 如何在 iOS 中编写间隙类型自定义 uiprogressview?
- android - 在带有重定向的 Android Studio 上显示 Internet 连接对话框
- powerbi - 使用DAX在power BI中没有所选月份和所选国家/地区的数据时如何从切片器显示所选国家/地区名称
- pytorch - 在多节点多 GPU 上使用 MPI 分发的 PyTorch
- c# - Unity 中带有“CanvasGroup.interactable”的“MissingComponentException”
- angular - 匿名登录后无法访问 Angular 上的 Firestore 数据
- javascript - Javascript 输出结果,间隔一秒