首页 > 解决方案 > 为什么包含函数不使用二进制搜索

问题描述

有谁知道为什么Array.prototype.includes不使用二进制搜索算法?

function BinarySearch(names,requiredName)
{
   return names.includes(requiredName)?true:false;
}

标签: javascript

解决方案


因为规范说要按升序搜索:

22.1.3.11 Array.prototype.includes

注1

include使用 SameValueZero 算法按升序将 searchElement 与数组的元素进行比较,如果在任何位置找到,则返回true;否则,返回false

解释器无法知道您调用它的数组是否已排序,也不知道其中包含哪些类型的元素。(想象一下,如果数组是由HTMLElements 组成的,例如)


推荐阅读