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));
Я думаю, что он должен начать поиск с первого индекса, который является "Апельсины", и отобразить результат как 1. Но он отображает результат 2.
Также
"Blue Whale".indexOf("", 10)
Здесь, в строке "Синий кит", значение индекса равно 9. Тогда почему он также принимает 10 и отображает результат как 10.
Даже если поиск начинается с позиции x, возвращаемое значение будет индексом элемента с начала массива
В случае "Blue Whale".indexOf("", 10)
есть 10 символов, и вы ищете пустую строку, которая найдена после последнего символа, поэтому 10 возвращается
"aba".indexOf('a',1) === 2
Рассмотрим следующий пример:
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
Синтаксис
str.indexOf(searchValue [, fromIndex])
поэтому он начинает находить из выбранного индекса, но возвращает индекс в коллекции, поэтому индекс "Mutton" равен 2, его возврат
с пустым строкой возвращает длину строки
string.indexOf
Это потому, что вы установили начальную позицию на 10 и искали "ничего".
Если бы ваша стартовая позиция все равно была 10, а строка, которую вы искали, была примером "e", она вернет -1
Синтаксис
string.indexOf(searchvalue,start)
Необязательный параметр indexOf не возвращает позицию уникального элемента в массиве относительно начальной точки, он просто используется для поиска элемента в массиве после этой начальной точки.
Например, если у вас есть это:
var fruits=["Mutton", "Apple", "Oranges", "Mutton", "Chicken"]
тогда
alert(fruits.indexOf("Mutton", 0)); //Alerts 0
будет возвращать 0, потому что Mutton находится в индексе 0, однако, если вы начнете поиск из индекса 1, он уже прошел мимо Mutton, поэтому не увидит его и вместо этого найдет первую запись Mutton после индекса 1, которая теперь равна 3:
alert(fruits.indexOf("Mutton", 3)); //Alerts 3