当前位置:首页 > JavaScript

js实现indxof

2026-03-15 09:47:20JavaScript

实现 indexOf 的方法

JavaScript 中实现 indexOf 功能可以通过多种方式完成。以下是几种常见的实现方法:

使用原生方法

JavaScript 数组和字符串原生提供了 indexOf 方法,可以直接调用:

js实现indxof

const arr = [1, 2, 3, 4];
const str = "hello";

console.log(arr.indexOf(3)); // 输出: 2
console.log(str.indexOf("l")); // 输出: 2

自定义数组的 indexOf

如果需要手动实现数组的 indexOf,可以遍历数组并比较元素:

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

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

自定义字符串的 indexOf

对于字符串,可以逐字符比较:

js实现indxof

function customStrIndexOf(str, target) {
    const targetLen = target.length;
    for (let i = 0; i <= str.length - targetLen; i++) {
        if (str.substr(i, targetLen) === target) {
            return i;
        }
    }
    return -1;
}

const str = "hello world";
console.log(customStrIndexOf(str, "world")); // 输出: 6
console.log(customStrIndexOf(str, "abc")); // 输出: -1

使用 ES6 的 findIndex

对于数组,可以使用 findIndex 方法实现类似功能:

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

性能优化

对于大型数据,可以使用更高效的算法,如二分查找(前提是数组已排序):

function binarySearch(arr, target) {
    let left = 0;
    let right = arr.length - 1;
    while (left <= right) {
        const mid = Math.floor((left + right) / 2);
        if (arr[mid] === target) {
            return mid;
        }
        if (arr[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

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

标签: jsindxof
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

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

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…

js实现文件夹

js实现文件夹

使用JavaScript创建文件夹 在浏览器端的JavaScript中无法直接操作文件系统创建文件夹,这是出于安全考虑。但在Node.js环境中可以通过文件系统模块(fs)实现。 Node.js中使…

js 实现按钮点击

js 实现按钮点击

实现按钮点击的 JavaScript 方法 HTML 按钮元素 在 HTML 中创建一个按钮,可以通过 <button> 或 <input> 标签实现: <button…

js实现截图

js实现截图

使用HTML2Canvas库实现截图 HTML2Canvas是一个流行的JavaScript库,可以将网页元素或整个页面转换为Canvas图像。安装方式: npm install html2canv…