当前位置:首页 > JavaScript

js includes实现原理

2026-04-07 13:01:36JavaScript

JavaScript includes 方法实现原理

includes 方法是 JavaScript 中用于检查数组或字符串是否包含特定元素的工具。其实现原理可以分解为以下几个关键点:

数组的 includes 方法

数组的 includes 方法用于检查数组中是否包含某个值。其实现逻辑如下:

  • 遍历数组的每个元素,从起始索引(默认为 0)开始。
  • 使用严格相等(===)比较目标值与当前元素。
  • 如果找到匹配项,立即返回 true;否则遍历结束后返回 false

示例代码实现:

Array.prototype.customIncludes = function(searchElement, fromIndex = 0) {
  const length = this.length;
  fromIndex = fromIndex >= 0 ? fromIndex : Math.max(0, length + fromIndex);

  for (let i = fromIndex; i < length; i++) {
    if (this[i] === searchElement) {
      return true;
    }
  }
  return false;
};

字符串的 includes 方法

字符串的 includes 方法用于检查字符串中是否包含某个子串。其实现逻辑如下:

  • 从起始索引(默认为 0)开始搜索子串。
  • 如果子串长度加上起始索引超过字符串长度,直接返回 false
  • 使用逐字符匹配的方式检查子串是否存在。

示例代码实现:

js includes实现原理

String.prototype.customIncludes = function(searchString, position = 0) {
  const str = this;
  const searchLength = searchString.length;
  const strLength = str.length;

  position = position >= 0 ? position : Math.max(0, strLength + position);
  if (position + searchLength > strLength) {
    return false;
  }

  for (let i = position; i <= strLength - searchLength; i++) {
    let match = true;
    for (let j = 0; j < searchLength; j++) {
      if (str[i + j] !== searchString[j]) {
        match = false;
        break;
      }
    }
    if (match) {
      return true;
    }
  }
  return false;
};

注意事项

  • includes 方法对 NaN 的处理与普通严格相等不同。数组的 includes 可以正确识别 NaN,而 indexOf 不能。
  • 字符串的 includes 方法区分大小写。
  • 性能上,includes 的时间复杂度为 O(n),但对于大型数据可能需要优化。

标签: 原理js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…