Как найти подстроку без встроенной функции в JavaScript? - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь перестроить функцию подстроки. вот мой code.it не работает, когда передается один параметр, а также когда num1> num2. Может кто-нибудь сказать мне, где я должен изменить?

вот мой код ......

function myFunction(num1, num2) {
  var str = "This is a string";
  var subString = "";
  var len = str.length;

  if (num1 < 0 || num2 > len) {
    console.log("Invalid input");
  } else {
    var k = 0;
    for (i = num1; i < num2; i++) {
      subString = subString + str[i];
      k++;
    }
    console.log(subString);
  }
}
myFunction(0, 4);

Ответы [ 2 ]

2 голосов
/ 10 ноября 2019

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

Затем начните с пустой строки и выполните итерации от начала до конца или длины строки.

function substring(string, start, end) {
    var result = '',
        length = Math.min(string.length, end),
        i = start;
  
    while (i < length) result += string[i++];
    return result;
}

console.log(substring('This is a string', 0, 4));
console.log(substring('This is a string', 40, 4));
0 голосов
/ 10 ноября 2019

Многие дороги ведут в Рим. Вот три из них:

function substring1(str, start, end) {
  return str
    .split("")
    .reduce((acc, val, i) => acc + (i >= start && i < end ? val : ""), "");
}

function substring2(str, start, end) {
  let substr = "";
  while (--end >= start) {
    substr = `${str[end]}${substr}`;
  }
  return substr;
}

function substring3(str, start, end) {
  return str.slice(start, end);
}

console.log(substring1("This is a string", 0, 4));
console.log(substring2("This is a string", 0, 8));
console.log(substring3("This is a string", 0, 8));

Имейте в виду, что String.prototype.substr это не String.prototype.substring

...