Поиск индекса строки Javascript - PullRequest
0 голосов
/ 13 марта 2019

Эта тема широко обсуждалась и обсуждалась, но я до сих пор не могу найти решение для моей конкретной проблемы.

Мне нужно создать функцию, которая возвращает индекс для первого вхождения символа в строке ... кажется достаточно простым, однако я не могу использовать какие-либо встроенные функции, такие как;indexof, lastIndexOf, search, launchWith, findIndex, по сути, все, что могло бы сделать это проще и помешало бы мне задать вопрос, на который так четко уже был дан ответ.

Пока что у меня есть что-то вроде этого:

function searchIndex(str,index){
let x = str.charAt(index);
console.log(x);
}

Я понимаю, что charAt требует индекса, теперь мой вопрос - есть ли в любом случае, я могу заставить эту работу?Когда я писал это, я думал о том, что если я добавлю строку, например «abc», и укажу индекс 0, будет возвращено «a», однако я получаю ошибку, в которой говорится, что charAt не является функцией.Это говорит о том, что мое мышление было неверным, и что я не могу просто использовать параметр индекса из функции в качестве индекса для charAt. * ​​1008 *

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

отредактировал charAT в charAt, извинения.

Ответы [ 4 ]

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

Другой способ сделать это, предполагая, что вы можете использовать Array.entries()

const str = "This is a string";
const char = "a";

function findCharIndex(str, char) {
  for (let [index, val] of [...str].entries()) {
    if (val === char) {
      return index;
    }
  }
}

console.log(findCharIndex(str, char));
0 голосов
/ 13 марта 2019

Это должно соответствовать вашим потребностям:

findFirstOccurance = (str, char) => Array.from(str).findIndex(c => c === char)

let str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.";

console.log(findFirstOccurance(str, 'a'));

Если его необходимо разобрать еще больше, выполните:

findFirstOccurance = (str, char) => {
  for (let i = 0; i < str.length; i++) {
    if (str[i] === char) {
      return i;
    }
  }
  return -1; // or false, whichever you prefer.
}

let str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis ute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.";

console.log(findFirstOccurance(str, 'a'));

Надеюсь, это поможет,

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

Это близко к тому, что вы ищете?

function findCharIndex(str,char){
  for (let index = 0; index < str.length; index++) {
     if (str[index] === char) {
       return index;
     }        
  }
  return -1;
}
0 голосов
/ 13 марта 2019

Перебирайте каждый элемент в str и проверяйте, нужен ли вам символ:

let string = "This is a string";
let char = "a";
let index;
for (let i = 0; i < string.length; i++) {
  if (string[i] == char) {
    index = i;
    break;
  }
}

console.log(index);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...