Мне нужна ваша помощь в следующем: я пытаюсь разработать функцию, которая должна проверять, равны ли две строки аргумента по вращению друг другу.Например, «abcd» станет «cdab», если мы повернем его по часовой стрелке дважды, поэтому моя функция должна возвращать «true», если приведенные выше строки представлены в качестве аргументов.Моя первоначальная идея для решения этой проблемы состояла в том, чтобы проверить, существует ли постоянный сдвиг между каждым символом в обеих строках, поэтому я попытался
function areRotEq (str1, str2) {
var shift = null;
for(char of str1){
if(!shift) shift = str2.indexOf(char);
else if (shift != str2.indexOf(char)) return false
}
return true;
}
Но он не может правильно оценить даже вышеупомянутые простые строки и возвращает «ложь»,Если бы вы могли указать мне правильное направление, чтобы выяснить, почему мой код не работает, или, возможно, предложить какой-то более эффективный метод для решения моей проблемы, который был бы очень признателен.Заранее спасибо!