Неверный вывод функции JavaScript
Мне необходимо сделать, чтобы выводилось всегда наибольшее количество символов до определенной буквы, сейчас выводится почему-то наименьшее, хотя до буквы "s" больше символов, но выводится количество символов до буквы "g", но если их поменять местами, то выведется наибольшее, то есть до "s", помогите пожалуйста решить проблему
const func = (s, a, b) => {
let aIndex = s.substring(0, s.lastIndexOf(a));
let bIndex = s.substring(0, s.lastIndexOf(b));
if ((aIndex.length != s.length) < (bIndex.length != s.length)) {
if (s.includes(a) && s.includes(b)) {
return ((s != "" && a != "" && b != "")) || ((s.includes(a) || s.includes(b)) && s != "" && (a != "" || b != "")) ? bIndex.length : -1;
} return -1
} return ((s.includes(a) && s.includes(b)) && (s != "" && a != "" && b != "")) || ((s.includes(a) || s.includes(b)) && s != "" && (a != "" || b != "")) ? aIndex.length : -1;
};
console.log(func("aafghjjkfjbbddddsafv", "g", "s"));
Ответы (1 шт):
Автор решения: HaZcker
→ Ссылка
Если я правильно понял, и вам нужно вернуть кол-во символов саммой длинной подстроки, от начала и до символа, то вот примерный код для вашей задачи:
function getMaxCharsCount(str, ch1, ch2) {
const strBeforeChar1 = str.split(ch1)[0]
const strBeforeChar2 = str.split(ch2)[0]
if(strBeforeChar1.length > strBeforeChar2.length ) {
return strBeforeChar1.length
}
return strBeforeChar2.length
}
console.log(getMaxCharsCount("aafghjjkfjbbddddsafv", "g", "s"));