Javascript IndexOf查询

时间:2013-12-18 10:04:57

标签: javascript jquery

var fruits=["Apple", "Oranges", "Mutton", "Chicken"]

alert(fruits.indexOf("Mutton", 1));      // returns 2

alert("Blue Whale".indexOf("", 10));     // returns 10

语法

str.indexOf(searchValue[, fromIndex])

可选[fromIndex]允许您指定开始搜索的位置(默认为0,或搜索整个数组):

然后为什么以下代码返回2:

 alert(fruits.indexOf("Mutton", 1));

我认为它应该从第一个'Oranges'索引开始搜索并将结果显示为1.但是它显示的是结果2.

另外

"Blue Whale".indexOf("", 10)

此处在“Blue Whale”字符串中,索引值最多为9.然后,为什么它也接受10并将结果显示为10.

5 个答案:

答案 0 :(得分:2)

即使搜索从位置x开始,返回的值也将是数组开头的元素索引

"Blue Whale".indexOf("", 10)的情况下,有10个字符,并且您正在搜索在最后一个字符之后找到的空字符串,这就是返回10的原因

答案 1 :(得分:0)

语法

  

str.indexOf(searchValue [,fromIndex])

所以它从所选索引开始查找但在集合中返回索引,因此索引“Mutton”为2,其返回

使用case空字符串返回字符串长度

答案 2 :(得分:0)

考虑以下示例:

var a = [1, 2, 3, 1, 2, 3];
a.indexOf(1); // 0
a.indexOf(1, 1 /* = skip index 0 */); // 3
a.indexOf(1, 2 /* = skip indexes 0 and 1 */); // 3

我想忽略第一次出现:

a.indexOf(1, a.indexOf(1) + 1); // 3

答案 3 :(得分:0)

indexOf可选参数不返回数组中相对于起始点的唯一元素的位置,它仅用于在该起点之后仅搜索数组中的元素。

例如,如果你有这个:

var fruits=["Mutton", "Apple", "Oranges", "Mutton", "Chicken"]

然后

 alert(fruits.indexOf("Mutton", 0)); //Alerts 0

会返回0,因为羊肉在索引0处,但是如果你从索引1开始搜索,它已经过了羊肉所以不会看到它,而是会找到羊肉的第一个条目在索引1之后,现在是3:

 alert(fruits.indexOf("Mutton", 3)); //Alerts 3

http://jsfiddle.net/zKrzu/

答案 4 :(得分:0)

因为你将开始位置设置为10并搜索“无”。

如果您的起始位置仍为10且您搜索的字符串为“e”,则返回-1

语法

string.indexOf(searchvalue,start)