JavaScript 检查迭代器是否包含值

标签 javascript arrays iterator

对于 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反射(reflect) Array 的方法API呢。
1:技术上,includes使用 SameValueZero comparison ,其结果与 === 不同对于 valueNaN .

关于JavaScript 检查迭代器是否包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64093419/

相关文章:

JavaScript 用于获取 URL 值并将其发布到 iFrames 中

javascript - 是否可以创建一个仅显示数组中最多 n 个元素的灰尘文件?

javascript - 防止字段建议 JavaScript 中以前使用过的单词

java - 在 Java 中使用两个二维数组

java - String[][] 出现越界异常错误

ios - 归档/取消归档时对象是否被修改?

java - 如何在java中迭代数组[...][i](列)

iterator - 使用迭代器的所有完整 block (可能会跳过最后一个)

java - 迭代器 vs for 循环以及为什么像 for 循环一样引入迭代器?

javascript - 解析指针权限不允许创建