我需要一个类似IndexOf
var str = "test*index*ofAnyChar";
console.log(str.indexOf("*", 5)); // output will be 10
var str = "test*index*ofAnyChar";
console.log(str.indexOf("*", 0)); // output will be 4
以除内置函数return str.indexOf(indexValue,startFrom)
之外的其他方式获取字符串,索引值,开始于和返回值
function Findindex(str, indexValue, startFrom){
}
我要输出('str*index*of123123E32132s', '*', 0)
成为3
和
我要输出('str*index*of123123E32132s', '*', 4)
成为9
答案 0 :(得分:2)
这是解决它的另一种方法。在这种方法中,您仅从所需的索引进行迭代,并在找到匹配项时停止。
注意:我还重命名了该函数,以便遵循命名约定。
function findIndex(str, indexValue, startFrom=0){
for (let i = startFrom; i < str.length; i++) {
if (str[i] === indexValue) return i
}
}
console.log(findIndex('str*index*of123123E32132s', '*', 0))
console.log(findIndex('str*index*of123123E32132s', '*', 4))
如果要处理找不到匹配项的情况,可以选择在for循环后添加return -1
语句。
答案 1 :(得分:1)
您当然可以使用循环来遍历字符串。使用for...of
循环。
function Findindex(str, indexValue, startFrom){
let i = 0;
for(const char of str){
if(!(i>=startFrom)){
i++;
continue;
}
if(char==indexValue) return i;
i++;
}
}
其语法:
str.indexOf(searchValue [,fromIndex])
第二个参数的描述:
一个整数,表示开始搜索的索引;默认值为0。对于fromIndex小于0或大于str.length的值,搜索分别从索引0和str.length开始。
如您所见,indexOf具有第二个参数,可让您告诉它从何处搜索。
您可以这样使用它
function Findindex(str, indexValue, startFrom){
return str.indexOf(indexValue,startFrom);
}