当前位置:首页 > JavaScript

js实现indxof

2026-02-02 09:48:25JavaScript

js实现indxof

实现 indexOf 的 JavaScript 方法

JavaScript 中的 indexOf 方法用于查找数组中指定元素的第一个匹配项的索引,或字符串中指定子字符串的第一个匹配项的索引。以下是两种实现方式:

数组的 indexOf 实现

function arrayIndexOf(arr, searchElement, fromIndex = 0) {
  for (let i = fromIndex; i < arr.length; i++) {
    if (arr[i] === searchElement) {
      return i;
    }
  }
  return -1;
}
  • arr:要搜索的数组
  • searchElement:要查找的元素
  • fromIndex:可选,开始查找的位置,默认为 0

字符串的 indexOf 实现

function stringIndexOf(str, searchValue, fromIndex = 0) {
  if (fromIndex < 0) fromIndex = 0;
  if (fromIndex >= str.length) return -1;

  for (let i = fromIndex; i < str.length; i++) {
    if (str.substring(i, i + searchValue.length) === searchValue) {
      return i;
    }
  }
  return -1;
}
  • str:要搜索的字符串
  • searchValue:要查找的子字符串
  • fromIndex:可选,开始查找的位置,默认为 0

使用示例

const arr = [1, 2, 3, 4, 5];
console.log(arrayIndexOf(arr, 3)); // 输出: 2

const str = "Hello World";
console.log(stringIndexOf(str, "World")); // 输出: 6

注意事项

  • 这些实现是简化版本,原生 indexOf 方法还处理了一些边界情况和特殊类型比较
  • 对于数组,可以使用严格相等比较(===),而字符串需要比较子字符串
  • 负数 fromIndex 会被当作 0 处理,超过长度的 fromIndex 会直接返回 -1

js实现indxof

标签: jsindxof
分享给朋友:

相关文章

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div c…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…