对于 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 ,其结果与 ===
不同对于 value
的 NaN
.
关于JavaScript 检查迭代器是否包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64093419/