javascript - JavaScript 检查迭代器是否包含值
问题描述
对于 JavaScript 数组,includes(value)
当且仅当数组包含该值时,该函数才返回 true。检查一个值是否包含在迭代器中(例如map.values()
)有什么好的和高性能的等价物?
第一种方法(可能不是性能最高的方法):
Array.from(it).includes(value)
第二种方法(不是那么短):
const iteratorIncludes = (it, value) => {
for (x of it) {
if (x === value) return true
}
return false
}
iteratorIncludes(it, value)
解决方案
你的第二种方法看起来不错。当然,您需要将辅助函数存放在某个地方,但您只需要声明一次,所以没关系 - 调用简短高效(甚至比您的第一种方法更短)。
或者,使用建议的迭代器助手并检查it.some(v => v === value)
1。他们还没有提供includes
反映Array
API 的方法。
1:从技术上讲,includes
使用SameValueZero比较,其结果与===
a value
of不同NaN
。
推荐阅读
- python - Python Asyncio & Websocket 如何避免全局变量?
- amazon-web-services - 使用 curl 从 AmazonS3 存储桶下载文件
- r - 如何计算 R 中不规则降雨时间序列中的最大 60 分钟总数?
- reactjs - 反应不呈现 - 无法读取未定义的属性
- c# - 如何在 C# 中使用 webclient 发送带有 post 方法的 xmlstring?
- php - PHP PDO SQLite中查询字符串的最大长度?
- tomcat - Tomcat procrun 安装程序不适用于 catalina_home 路径中的空格
- r - 找不到函数“(<-”
- linux - 如何删除文件Shell脚本中的文本块?
- python - 过滤 1000 个大文件 pyspark 中的 Header 2 行和 Trailer 1 行