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







