рекурсия с chartCodeAt для уменьшения строки - PullRequest
0 голосов
/ 15 января 2019

способ рекурсии уменьшить строку или массив? пример дела:

если у нас есть. переменная abcdfgh4zi вывод должен быть f4z

ПОТОМУ ЧТО после d должно быть e, а затем после h должно быть I это нравится сортировка ...

Я пытаюсь, но мне не удалось использовать charCodeAt

function reduce(data) {
  let result = ""
  if (data.length <= 1) {
    return result
  } else if (data.charCodeAt(data[0])+1  !==  data.charCodeAt(data[1])) {
    result += data[0]
  }
  return result + reduce(data.slice(1))

}

console.log(reduce('abcdfgh4zi')); // f4z

результат такой же, как у этих данных, и если я его использую <, это будет пустая строка

если данные "lmnop" результат равен true и он вернет empty string, потому что они сортируют

и здесь, чтобы найти следующий алфавит, который я нашел на SO. Если chartCodeAt не работает

var abc = (parseInt(data[0], 36) + 1) % 36;
 var nextAlphabet = ((!abc * 10 + abc).toString(36));

1 Ответ

0 голосов
/ 15 января 2019

charCodeAt ожидает индекс, вы даете ему символ. Итак, вы делаете data.charCodeAt("a") + 1 !== data.charCodeAt("b")

Вы также сохраняете первый символ, поэтому вы должны хранить «d», а не «f»

function reduce(data) {
  let result = ""
  if (data.length <= 1) {
    return result
  } else if (data.charCodeAt(0)+1  !==  data.charCodeAt(1)) {
    result += data[1]
  }
  return result + reduce(data.slice(1))

}

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