今天看 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时) 再举个例子:
java:
String s="012345678901234";
相当于: String s="0123 4
";
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)
---[2014-08-08]---