Инструкции для этого ката:
В этом ката мы проверим, содержит ли строка последовательные буквы в том виде, в каком они присутствуют в английском алфавите, и встречается ли каждая буква только один раз.
Кажется, мой код по-разному индексирует строки для каждого вызова функции. например, в первом тесте «abcd» начальный индекс отображается как 0, что является правильным, а во втором примере, «himjlk»,
var subString = alphabet.substring(startIndex, length);
возвращает «g» вместо «h»
поиск и устранение неисправностей в этом разделе
var length = orderedString.length;
//startChar for string comparison
var startChar = orderedString.charAt(0);
//find index in aphabet of first character in orderedString.
var startIndex = alphabet.indexOf(startChar);
//create substring of alphabet with start index of orderedString and //orderedString.length
var subString = alphabet.substring(startIndex, length);
function solve(s) {
//alphabet string to check against
const alphabet = `abcdefghijklmnopqrstuvwxyz`;
//check s against alphabet
//empty array to order input string
var ordered = [];
//iterate through alphabet, checking against s
//and reorder input string to be alphabetized
for (var z in alphabet) {
var charToCheck = alphabet[z];
for (var i in s) {
if (charToCheck === s[i]) {
ordered.push(s[i]);
}
//break out of loop if lengths are the same
if (ordered.length === s.length) {
break;
}
}
if (ordered.length === s.length) {
break;
}
}
//join array back into string
var orderedString = ordered.join(``);
//length for future alphabet substring for comparison
var length = orderedString.length;
//startChar for string comparison
var startChar = orderedString.charAt(0);
//find index in aphabet of first character in orderedString.
var startIndex = alphabet.indexOf(startChar);
//create substring of alphabet with start index of orderedString and orderedString.length
var subString = alphabet.substring(startIndex, length);
//return if the two are a match
return subString == orderedString ? true : false;
}
console.log(solve("abdc")); //expected `true`
console.log(solve("himjlk")); // expected `true`
console.log(solve("abdc"));
должен предоставить подстроку "abcd" и вернуть true, что он и делает.
console.log(solve("himjlk"));
должен сложить "hijklm" и вернуть true
, но вместо этого дает мне g
на основе индекса 6 алфавита, не уверен, почему он это делает, должен быть индекс 7 "h" возвращает false на основе эта ошибка.