如何解决JavaScript检查迭代器是否包含值
对于JavaScript数组,当且仅当数组包含该值时,includes(value)
函数才会返回true。
等同于检查iterator是否包含值(例如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)
解决方法
您的第二种方法看起来不错。当然,您需要将辅助函数存放在某处,但您只需要声明一次它就无所谓了 - 调用简短高效(甚至比您的第一种方法更短)。
或者,使用 proposed iterator helpers 并选中 it.some(v => v === value)
1。他们尚未提供反映 includes
API 的 Array
方法。
1:从技术上讲,includes
使用 SameValueZero comparison,对于 ===
的 value
,其结果与 NaN
不同。子>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。