今天看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)是正确的结果。
以前以为 srcString.lastIndexOf(searchingObj, startIndex)是从srcString的索引startIndex开始,往后寻找最后面那个searchingObj的索引,现在证明是错的。JS的数组lastIndexOf方法也一样。
事实上,lastIndexOf方法被设定为:startIndex开始/或者从srcString.length-1索引(即末尾)开始,从后往前(逆向backward)寻找第一个searchingObj的位置。