Почему RETURN показывает различный вывод в javascript - PullRequest
1 голос
/ 06 января 2020

Я пытаюсь решить функцию, которая инвертирует введенный аргумент.

Так что, если я запускаю следующий код, он отлично работает:

function FirstReverse(str) {
  let a = str.split("");
  a.reverse();
  
  return a.join("");
}

console.log(FirstReverse("hello"))

Но если я выполню следующий код, он не будет работать, хотя я бы подумал, что он будет таким же, как первый код:

function FirstReverse(str) {
  let a = str.split("");
  a.reverse();
  a.join("");
  
  return a;
}

console.log(FirstReverse("hello"))

Итак, мой вопрос: почему второй код ведет себя иначе, чем первый код?

1 Ответ

5 голосов
/ 06 января 2020

В то время как reverse будет мутировать массив, join нет.

Во втором примере вы игнорируете возвращаемое значение join() (которое является строкой) и вместо этого возвращаете значение a (которое является массивом).

...