今天看JS的数组
的lastIndexOf()
方法,看书上的例子,怎么看都觉得不对劲。后来详细读了几遍解释,用java也测试了下,才发现,之前的理解完全是错误的。
String nums="03454666574349";
System.out.println(nums.lastIndexOf("4")); // )12
System.out.println(nums.lastIndexOf("4", 4)); // f)12 //t)4
System.out.println(nums.lastIndexOf("4", 6)); // f)12 //t)4
System.out.println(nums.lastIndexOf("4", 11)); // f)12 //t)10
f)
指明的是我之前的理解,是错误的。t)
是正确的结果。
以前以为 s.lastIndexOf(searchingObj, startIndex) 是从s
的索引startIndex
开始,往后找最后那个searchingObj
索引,事实证明是错的。
JS的数组
的lastIndexOf
方法也一样。
事实上,lastIndexOf方法被设定为:
- startIndex开始 |看做把startIndex后面的全砍掉| ,再从后往前(逆向backward)寻找第一个searchingObj的
位置
;(有第二个参数startIndex时) - 从s.length-1索引开始(末尾), 从后往前(逆向backward)寻找第一个searchingObj的
位置
;(无第二个参数startIndex时)
再举个例子:
java:
String s="012345678901234";
System.out.println(s.lastIndexOf("2", 4));
相当于: String s="012345678901234";
1). 先找到起始索引4;
2). 砍/忽略掉后面的字符;
3). 从后往前找第一个: 得到结果:2
JS:
s=[0,1,2,3,4,5,6,7,8,9,0,1,2,3,4]
s.lastIndexOf(2,4)
2
---[2014-08-08]---
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。