Индекс строки - PullRequest
       24

Индекс строки

0 голосов
/ 28 марта 2019

Мне нужна функция, которая работает как IndexOf

var str = "test*index*ofAnyChar";
  console.log(str.indexOf("*", 5)); // output will be 10

var str = "test*index*ofAnyChar";
  console.log(str.indexOf("*", 0)); // output will be 4

, чтобы получить строку, indexvalue, startfrom и вернуть значение иначе, чем встроенная функция return str.indexOf(indexValue,startFrom)

function Findindex(str, indexValue, startFrom){

      }

Я хочу, чтобы выходные данные ('str*index*of123123E32132s', '*', 0) были 3

и

Я хочу, чтобы выходные данные ('str*index*of123123E32132s', '*', 4) были 9

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Вот еще один способ решить эту проблему. В этом методе вы выполняете итерацию только по нужному индексу и останавливаетесь, когда найдете совпадение.

Примечание: я также переименовал функцию, чтобы следовать соглашению об именах.

function findIndex(str, indexValue, startFrom=0){
  for (let i = startFrom; i < str.length; i++) {
    if (str[i] === indexValue) return i
  }
}

console.log(findIndex('str*index*of123123E32132s', '*', 0))
console.log(findIndex('str*index*of123123E32132s', '*', 4))

Можно дополнительно добавить оператор return -1 после цикла for, если вы хотите обрабатывать случаи, когда он не находит совпадений.

1 голос
/ 28 марта 2019

Вы, конечно, можете использовать цикл для перебора строки.Используйте цикл for...of.

function Findindex(str, indexValue, startFrom){
  let i = 0;
  for(const char of str){
    if(!(i>=startFrom)){
      i++;
      continue;
    }
    if(char==indexValue) return i;
    i++;
  }
}

Без цикла

String.prototype.indexOf

Его синтаксис:

str.indexOf (searchValue [, fromIndex])

Описание второго параметра:

Целое число, представляющее индекс вс чего начать поиск;значение по умолчанию равно 0. Для значений fromIndex меньше 0 или больше, чем str.length, поиск начинается с индекса 0 и str.length соответственно.

Как видите, indexOf принимает второй параметр, позволяя вам сказать, где искать.

Вы можете использовать его как таковой

function Findindex(str, indexValue, startFrom){
   return str.indexOf(indexValue,startFrom);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...