首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >替代lastIndexOf()函数

替代lastIndexOf()函数
EN

Stack Overflow用户
提问于 2019-12-28 04:47:30
回答 5查看 1.7K关注 0票数 2

以下是眼前的任务:

“编写一个名为stringLastIndexOf的函数,它接受两个字符串:第一个是单词,第二个是单个字符。 函数应该返回字符存在的最后一个索引,如果找不到字符,则返回-1。 不要使用内置的String.lastIndexOf()函数!“

我特别地为结束需求而挣扎,这就是让我的函数返回str2字符所在的确切位置。在不使用lastindexof函数的情况下,我能做些什么呢?

代码语言:javascript
运行
AI代码解释
复制
function stringLastIndexOf(str1, str2) {
  var pos = str1.includes(str2, -1);
  if (pos !== true) {
    return -1;
  } else {
    return str2.position();
  }
}
console.log(
  stringLastIndexOf('word', 'w'),
  stringLastIndexOf('pumped', 'f')
  );

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-12-28 04:58:00

简单的for循环可以解决您的问题。

代码语言:javascript
运行
AI代码解释
复制
function stringLastIndexOf(str1, str2) {
  let index = -1
  for (var i = 0; i < str1.length; i++) {
    if (str1[i] === str2) {
      index = i
    }
  }
  return index
}
console.log(
  stringLastIndexOf('word', 'w'),
  stringLastIndexOf('pumped', 'f')
);

票数 1
EN

Stack Overflow用户

发布于 2019-12-28 04:53:58

您可以向后循环:

代码语言:javascript
运行
AI代码解释
复制
const aLastIndexOf = (str, ch) => {
    for (let index = str.length - 1; index >= 0; index--) {
        if (str[index] == ch)
            return index;
    }
    return -1;
}

举个例子:

代码语言:javascript
运行
AI代码解释
复制
const aLastIndexOf = (str, ch) => {
    for (let index = str.length - 1; index >= 0; index--) {
        if (str[index] == ch)
            return index;
    }
    return -1;
}

console.log(aLastIndexOf("hello", 'h'));
console.log(aLastIndexOf("hello", 'l'));
console.log(aLastIndexOf("hello", 'e'));

票数 3
EN

Stack Overflow用户

发布于 2019-12-28 04:52:09

如果首先反转字符串,则只需使用indexOf

代码语言:javascript
运行
AI代码解释
复制
function stringLastIndexOf(str, c) {
  let pos = str.split("").reverse().join("").indexOf(c);
  return pos == -1 ? -1 : str.length - pos;
}

请注意,通过使用split将字符串转换为一个字符数组,反转该数组,并使用join将该数组再次加入到字符串中,该字符串将被反转。

indexOf的结果必须从原始字符串的长度中减去。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59511022

复制
相关文章
java中的lastIndexOf( )函数是什么意思
String中的lastIndexOf方法,是获取要搜索的字符、字符串最后次出现的位置。
黑泽君
2018/11/26
2.2K0
Java 函数引用 替代方案
通过接口和内部类 举个例子吧 比如new一个线程 c#里是这样 Thread tr = new Thread(new ThreadStart(func)); 其中func是函数名 那么java里可以这样 Thread tr = new Thread() { public void run() {func();} }; 也没有多写多少代码
ApacheCN_飞龙
2019/02/15
8240
Js:indexOf() 和 lastIndexOf() 的区别[通俗易懂]
ECMAScript 5 为数组实例添加了两个位置方法: indexOf() 和 lastIndexOf() 。这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。
全栈程序员站长
2022/09/14
2.2K0
函数禁用delete与替代函数体定义default
  在函数声明后加入=delete即可将该函数标记,一旦被调用则会导致编译错误。   例如:
Qt君
2019/07/15
5260
详解indexOf lastIndexOf includes findIndex find
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script type="text/javascript"> let arr=[1,3,5,7,9]; // 从左往右查找, 找到返回索引, 找不
贵哥的编程之路
2020/10/28
1K0
传统 for 循环的函数式替代方案
在 Java 语言的第 1 个版本中就开始引入了传统的 for 循环,它的更简单的变体 for-each 是在 Java 5 中引入的。大部分开发人员更喜欢使用 for-each 执行日常迭代,但对于迭代一个范围或跳过范围中的值等操作,他们仍会使用 for。
IT小马哥
2020/03/18
3K0
Java 高效编程·函数式替代 for 循环
虽然使用 range 没有显著减少代码量,但降低了它的复杂性,这么做的两个重要原因:
数媒派
2022/12/01
7940
字符串对象的IndexOf与lastIndexOf
indexOf(str,[index]):返回指定内容在元字符的位置,如果没有返回-1 ,有返回字符串的索引,只返回第一个字符串出现的位置 lastIndexOf与indexOf一样,不过是从字符串后面开始查找 weiz
切图仔
2022/09/08
1.2K0
listagg函数替代方案_listagg within group用法
这是一个Oracle的列转行函数:LISTAGG() 注:oracle 11.2才能用
全栈程序员站长
2022/10/04
1.7K0
详解length charAt indexOf lastIndexOf includes concat slice substring substr详解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script type="text/javascript"> /* 在js中字符串可以看做一个特殊的数组, 所以大部分数组的属性/方法字
贵哥的编程之路
2020/10/28
4660
使用React.Fragment替代render函数中div的包裹
1、在 React 中,render 函数中 return 的内容只能有一个根节点,如果多个元素嵌套,需要用一个标签元素包裹 这个包裹的标签通常用 div,示例如下: class App extend
Leophen
2019/08/23
2K0
使用React.Fragment替代render函数中div的包裹
Effective C++ 35:考虑虚函数的其他替代设计
Item 35: Consider alternatives to virtual functions.
早起的鸟儿有虫吃
2019/05/05
9410
Effective C++ 35:考虑虚函数的其他替代设计
用 Kotlin 的函数式编程 替代 GOF 设计模式用 Kotlin 的函数式编程 替代 GOF 设计模式函数式编程(FP)《Kotlin极简教程》正式上架:
"函数式编程", 又称泛函编程, 是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。它的基础是 λ 演算(lambda calculus)。λ演算可以接受函数当作输入(参数)和输出(返回值)。
一个会写诗的程序员
2018/08/17
1.2K0
用 Kotlin 的函数式编程 替代 GOF 设计模式用 Kotlin 的函数式编程 替代 GOF 设计模式函数式编程(FP)《Kotlin极简教程》正式上架:
Python90-5 使用辅助函数替代复杂表达式
Python的简洁语法允许使用简单的一行表达式来实现复杂操作。例如,我想解码从URL获取的query string。
一只大鸽子
2022/12/06
2660
Excel公式技巧02: INDEX函数,有时可替代数组公式
我们知道,数组公式在输入完后必须按Ctrl+Shift+Enter键来强制公式为数组公式。然而,我们已经习惯了在输入完后直接按Enter键,有没有一些技巧能够避免按Ctrl+Shift+Enter键但又能够达到数组公式的效果呢?
fanjy
2020/02/18
1.3K0
【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )
C++ 提供的 构造函数 和 析构函数 作为 类实例对象的 初始化 和 销毁 方案 ;
韩曙亮
2023/10/15
9190
【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )
LibreSSL 替代OPENSSL
LibreSSL 开发者 OpenBSD计划 稳定版本 2.0.3 / 2014年7月21日;3天前 开发状态 进行中 编程语言 C,汇编语言 操作系统 OpenBSD、FreeBSD、Linux、Mac OS X、Solaris 类型 安全库 许可协议 Apache许可证1.0、4句BSD许可证、ISC许可证,部份为公有领域 网站 http://www.libressl.org LibreSSL是OpenSSL加密软件库的一个分支,为一个安全套接层(SSL)和传输层安全(TLS)协议的开源
Zach
2018/06/21
2.9K0
【Kotlin】函数 ⑨ ( Kotlin 语言中的闭包概念 | Java 语言中函数作为参数的替代方案 )
匿名函数 就是 Lambda 表达式 , 同时也是 闭包 , 三者的是相同的概念 ;
韩曙亮
2023/03/30
1.1K0
【Kotlin】函数 ⑨ ( Kotlin 语言中的闭包概念 | Java 语言中函数作为参数的替代方案 )
替代jquery1.9版本以前的toggle事件函数(开关)
以上文章为转载自http://blog.sina.com.cn/s/blog_50042fab0101c7a9.html var flag=1; $(".selector").click(function(){ if(flag==1){ //执行方法; flag=0; }else{ //执行方法; flag=1; } 或者外接函数,例如 toggle(obj
蓓蕾心晴
2018/04/12
8590
点击加载更多

相似问题

LastIndexOf函数用法

12

定义函数lastIndexOf?

51

LastIndexOf()方法

50

lastIndexOf混淆

25

如何使用带符号的lastIndexOf()函数

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档