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.
答案 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
答案 4 :(得分:0)
因为你将开始位置设置为10并搜索“无”。
如果您的起始位置仍为10且您搜索的字符串为“e”,则返回-1
语法
string.indexOf(searchvalue,start)