手写 reverse

题目:实现字符串 / 数组的反转。

数组反转(双指针交换)

function myReverse(arr) {
  let left = 0;
  let right = arr.length - 1;
  while (left < right) {
    [arr[left], arr[right]] = [arr[right], arr[left]];
    left++;
    right--;
  }
  return arr;
}

myReverse([1, 2, 3, 4, 5]); // [5, 4, 3, 2, 1]

字符串反转

function reverseString(str) {
  return str.split("").reverse().join("");
}

// 或者:
function reverseString2(str) {
  let res = "";
  for (const ch of str) res = ch + res;
  return res;
}

单词顺序反转(按空格切分)

function reverseWords(str) {
  return str.split(" ").reverse().join(" ");
}