проблема при реверсировании строки

у меня задача реверсировать строку без метода reverse, я не могу понять где у меня тут ошибка, я попытаюсь объяснить логику моего кода: в цикле я методом pop забираю его с str и методом join перемещаю в reversedStr, но что-то не получается

function reverse(str) {
  let reversedStr = []

  for (let i = 0; i < str.length; i++) {
    reversedStr.push(str.split('').pop())
  }
  return reversedStr.join('')
}

console.log(reverse(''))
console.log(reverse('abcdef'))


Ответы (1 шт):

Автор решения: Алексей Шиманский

А зачем так сложно? Если достаточно пробегаться с конца строки до начала, брать символы и их конкатенировать.

function reverse(str) {
    let reversedStr = '';

    for (let i = str.length - 1; i >= 0; i--) {
        reversedStr += str[i];
    }
    
    return reversedStr;
}

console.log(reverse(''));
console.log(reverse('abcdef'));


function reverse(str) {
    let reversedStr = '';  
    let strLength = str.length;
    
    str.split('').forEach((char, index) => {
        reversedStr += str[strLength - index - 1];
    });
    
    return reversedStr;
}

console.log(reverse(''));
console.log(reverse('abcdef'));


В новом исправленном вами вопросе - ответ будет таков:

function reverse(str) {
  let reversedStr = []
  let strSplitted = str.split('');
  
  for (let i = 0; i < str.length; i++) {    
      reversedStr.push(strSplitted.pop())
  }
  
  return reversedStr.join('')
}

console.log(reverse(''))
console.log(reverse('abcdef'))

→ Ссылка