JavaScript,使用 indexOf() 和 lastIndexOf() 方法查找数组实例

标签 javascript methods indexof

我正在阅读 Nicholas Zakas 的“Professional JavaScript for Web Developers”(第三版),试图自学 JS。但是,我很难理解第 5 章第 118 页的定位方法部分(如果您有这本书的话)。他解释说“indexOf() 方法从数组的前面(第 0 项)开始搜索并继续到后面,而 lastIndexOf() 从数组中的最后一项开始并继续到前面”。他还解释说“这些方法中的每一个都接受两个参数:要查找的项目和从中开始查找的可选索引”。然后,他试图用例子来说明这一点。

正如您在下面看到的,在警报语句的右侧,他列出了给定提供的参数的每个语句的正确输出。我不明白这些输出是如何确定的。例如,如何 alert(numbers.indexOf(4));生产 3?昨晚我在读这篇文章,以为我太累了,无法理解,但是,我似乎仍然无法弄清楚这是如何实现的。我在本书配套网站的勘误表部分搜索了可能的拼写错误,但没有列出任何内容。我还在其他地方搜索过,但发现了主要处理字符串而不是数字的例子。谢谢你的帮助。这是我的第一篇关于堆栈溢出的帖子,如果我在帖子中做错了什么,我深表歉意。

他的例子:

var numbers = [1,2,3,4,5,4,3,2,1];

alert(numbers.indexOf(4));        //3

alert(numbers.lastIndexOf(4));    //5

alert(numbers.indexOf(4, 4));     //5

alert(numbers.lastIndexOf(4, 4)); //3  

我认为结果会是这样的:

alert(numbers.indexOf(4));        
//the item in the array with the fourth index, or 5


alert(numbers.lastIndexOf(4));    
//5 (this was only one that seemed to make sense to me) by counting back from the last value


alert(numbers.indexOf(4, 4));     
//start looking at index 4, or 5, and then count right four places to end up at 1 (last item in array).                                  


alert(numbers.lastIndexOf(4, 4)); 
//1, counting back to the left from the value with index 4, or 5, to reach the first value in the array.

任何有助于根据所需参数确定输出以及如何在给定附加可选参数的情况下从指定值开始计数的任何帮助将不胜感激。再次感谢。

最佳答案

在大多数编程语言中,默认索引从 0 开始。因此,您有一个理解问题。仔细考虑您的示例,索引从 0 开始。

var numbers = [1,2,3,4,5,4,3,2,1];

alert(numbers.indexOf(4));        //3, because 4 is at 3rd index
alert(numbers.lastIndexOf(4));    //5, because last 4 is at 5th index
alert(numbers.indexOf(4, 4));     //5, because searching will start from 4th index
alert(numbers.lastIndexOf(4, 4)); //3, because searching will start from last 3rd element.  

关于JavaScript,使用 indexOf() 和 lastIndexOf() 方法查找数组实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20835341/

相关文章:

java - 在 Java 中处理 Not Acceptable 方法参数的最佳方法是什么?

arrays - 无法将类型 'Meme!' 的值转换为预期的参数类型 '@noescape (Meme) throws -> Bool'

javascript - 如何清除时间字段选择?

javascript - 星级评分系统jquery

java - 将对象从一个类移动到另一个类 (Java)

java - 获取数组列表中项目的索引;

java - 我对象的ArrayList,indexOf问题

javascript - PHP回显纯文本

javascript - 如果上一个为空,则清除下一个嵌套选择标签

java - 从方法分配一个数组