当前位置:首页 > JavaScript

js实现indexof

2026-04-07 01:44:44JavaScript

JavaScript 中实现 indexOf 的方法

原生 indexOf 方法

JavaScript 的数组和字符串原生提供了 indexOf 方法,用于查找元素或子字符串的位置。

数组示例:

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

字符串示例:

const str = 'Hello World';
const index = str.indexOf('World');
console.log(index); // 输出: 6

自定义 indexOf 实现

如果需要手动实现类似功能,可以通过遍历数组或字符串来实现。

数组自定义实现:

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

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

字符串自定义实现:

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

  for (let i = fromIndex; i <= str.length - searchString.length; i++) {
    let match = true;
    for (let j = 0; j < searchString.length; j++) {
      if (str[i + j] !== searchString[j]) {
        match = false;
        break;
      }
    }
    if (match) return i;
  }
  return -1;
}

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

性能优化

原生 indexOf 方法经过高度优化,性能通常优于手动实现。在大多数情况下,建议直接使用原生方法。

性能对比示例:

js实现indexof

const largeArr = Array(1000000).fill(0).map((_, i) => i);

console.time('nativeIndexOf');
largeArr.indexOf(999999);
console.timeEnd('nativeIndexOf');

console.time('customIndexOf');
customIndexOf(largeArr, 999999);
console.timeEnd('customIndexOf');

注意事项

  • 原生 indexOf 使用严格相等(===)进行比较。
  • 自定义实现时需注意边界条件,如负数的 fromIndex 或超出范围的情况。
  • 对于复杂对象的查找,可能需要深度比较或其他逻辑。

标签: jsindexof
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…