为了账号安全,请及时绑定邮箱和手机立即绑定

字符串索引

字符串索引

30秒到达战场 2021-03-29 16:15:58
我需要一个像 IndexOfvar str = "test*index*ofAnyChar";  console.log(str.indexOf("*", 5)); // output will be 10var str = "test*index*ofAnyChar";  console.log(str.indexOf("*", 0)); // output will be 4获取字符串,indexvalue,startfrom并以内置函数以外的其他方式返回值 return str.indexOf(indexValue,startFrom)function Findindex(str, indexValue, startFrom){      }我希望的输出('str*index*of123123E32132s', '*', 0) 是3和我希望的输出('str*index*of123123E32132s', '*', 4) 是9
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

您当然可以使用循环来遍历字符串。使用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++;

  }

}

无循环

String.prototype.indexOf


它的语法:


str.indexOf(searchValue [,fromIndex])


第二个参数的描述:


一个整数,表示开始搜索的索引;默认值为0。对于fromIndex值小于0或大于str.length的搜索,分别从索引0和str.length开始。


如您所见,indexOf带有第二个参数,可让您告诉它从何处搜索。


你可以这样使用


function Findindex(str, indexValue, startFrom){

   return str.indexOf(indexValue,startFrom);

}


查看完整回答
反对 回复 2021-04-08
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

这是解决它的另一种方法。在这种方法中,您仅从所需的索引进行迭代,并在找到匹配项时停止。


注意:我还重命名了该函数,以便遵循命名约定。


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))

return -1如果要处理找不到匹配项的情况,可以选择在for循环之后添加一条语句。


查看完整回答
反对 回复 2021-04-08
  • 2 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信