У меня есть строка text = 'MNOPQRSTU'
и число K = 3
. Мне нужно получить результат 'PSVORUQTN'
путем циклического обхода исходной строки с использованием значения K
.
Логика работы:
text = MNOPQRSTU
Результат = P
text = MNOQRSTU
Результат = PS
text = MNORSTU
Результат = PSV
text = MNORTU
Результат = PSVO
и так далее...
Вот мой текущий код:
function extractChars(text, K) {
let chars = text.split('');
let result = "";
let counter = 0;
let position = 0;
while(chars.length > 0) {
counter++;
if(counter === K) {
result += chars.splice(position, 1);
counter = 0;
position = position - 1;
}
if(position === chars.length - 1) {
position = -1;
}
if(chars.length === 1) {
result += chars.splice(0, 1);
}
position++;
}
return result;
}
extractChars("MNOPQRSTUV", 3);
Я новичок и хочу решить эту задачу используя функции высшего порядка в JavaScript (map, filter, reduce и т.д.). Но никак не могу понять как это сделать. Можете помочь переписать код используя эти функции? Если это невозможно, объясните почему такой подход не подойдет для данной задачи.