JavaScript中include()函数的时间复杂度

前端之家收集整理的这篇文章主要介绍了JavaScript中include()函数的时间复杂度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个包含某些字符串的哈希值的数组,
我不想在我的数组中重复值,所以我使用if这样的逻辑

if(!arrayOfHash.includes(hash_value)){
   arrayOfHash.push(hash_value); 
}

我想知道JavaScript中includes()函数的复杂性.
它是线性搜索功能还是修改后的搜索功能

最佳答案
Spec将此功能描述为线性搜索. Array.prototype.includes

  1. Let O be ? ToObject(this value).

  2. Let len be ? ToLength(? Get(O,“length”)).

  3. If len is 0,return false.
  4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined,this step produces the value 0.)
  5. If n ≥ 0,then Let k be n.
  6. Else n < 0,Let k be len + n. If k < 0,let k be 0.
  7. Repeat,while k < lenIncrease k by 1.

在一般情况下,这是一个非常合理的选择(列表未排序,列表不统一,您不会与列表本身一起维护其他数据结构).

原文链接:https://www.f2er.com/js/429250.html

猜你在找的JavaScript相关文章