js实现indxof


实现 indexOf 的方法
在 JavaScript 中,indexOf 方法用于返回指定值在字符串或数组中首次出现的位置。如果未找到该值,则返回 -1。以下是几种实现 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) 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;
}
使用递归实现
function recursiveIndexOf(str, searchValue, fromIndex = 0) {
if (fromIndex >= str.length) return -1;
if (str[fromIndex] === searchValue) return fromIndex;
return recursiveIndexOf(str, searchValue, fromIndex + 1);
}
使用 Array.prototype.reduce 实现
function reduceIndexOf(arr, searchElement, fromIndex = 0) {
return arr.reduce((acc, curr, index) => {
if (index < fromIndex) return acc;
if (curr === searchElement && acc === -1) return index;
return acc;
}, -1);
}
注意事项
- 确保处理负数
fromIndex的情况。 - 边界条件检查(如
fromIndex大于字符串或数组长度)。 - 严格相等比较(
===)用于匹配元素。
以上方法可以根据实际需求选择使用。






