当前位置:首页 > JavaScript

js 实现indexof函数

2026-02-02 19:49:59JavaScript

实现 JavaScript 的 indexOf 函数

JavaScript 的 indexOf 方法用于返回指定值在字符串或数组中首次出现的位置。以下是一个自定义实现的示例,涵盖字符串和数组两种场景。

js 实现indexof函数

字符串版本的 indexOf

function customIndexOf(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[i] === searchValue[0]) {
      let match = true;
      for (let j = 1; j < searchValue.length; j++) {
        if (str[i + j] !== searchValue[j]) {
          match = false;
          break;
        }
      }
      if (match) return i;
    }
  }
  return -1;
}

数组版本的 indexOf

function customArrayIndexOf(arr, searchElement, fromIndex = 0) {
  if (fromIndex < 0) fromIndex = Math.max(0, arr.length + fromIndex);

  for (let i = fromIndex; i < arr.length; i++) {
    if (arr[i] === searchElement) return i;
  }
  return -1;
}

使用示例

const str = "Hello, world!";
console.log(customIndexOf(str, "world")); // 输出: 7

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

注意事项

  • 字符串版本支持多字符搜索,而数组版本仅支持单个元素搜索。
  • 两个实现均支持可选的 fromIndex 参数,用于指定开始搜索的位置。
  • 如果未找到目标值,函数返回 -1,与原生的 indexOf 行为一致。
  • 数组版本处理负数的 fromIndex 时,会从数组末尾开始计算位置。

标签: 函数js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

jquery函数

jquery函数

jQuery 函数概述 jQuery 是一个快速、简洁的 JavaScript 库,通过封装原生 JavaScript 功能,简化 DOM 操作、事件处理、动画和 AJAX 等任务。其核心函数 $()…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现隐藏div

js实现隐藏div

隐藏div的几种方法 使用JavaScript隐藏div元素可以通过多种方式实现,以下是几种常见的方法: 方法一:修改style.display属性 将div的display属性设置为"none"…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…