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)


收到一只叮咚
浏览 103回答 1
1回答

撒科打诨

你的第二种方法看起来不错。当然,您需要将辅助函数隐藏在某个地方,但您只需要声明一次,所以没关系——调用简短而高效(甚至比您的第一种方法更短)。或者,使用建议的迭代器助手并检查it.some(v => v === value)1。他们还没有提供includes镜像ArrayAPI 的方法。1:从技术上讲,includes使用SameValueZero comparison=== ,其结果与of 的value结果不同NaN。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript