js实现reverse
使用数组的 reverse 方法
JavaScript 数组原生提供了 reverse 方法,可以直接反转数组元素顺序。以下是示例代码:
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reverse();
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
需要注意的是,reverse 方法会直接修改原数组。如果需要保留原数组,可以先复制一份:
const arr = [1, 2, 3, 4, 5];
const reversedArr = [...arr].reverse();
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
console.log(arr); // 输出: [1, 2, 3, 4, 5]
手动实现数组反转
如果不使用内置方法,可以通过循环手动实现反转:

function reverseArray(arr) {
const result = [];
for (let i = arr.length - 1; i >= 0; i--) {
result.push(arr[i]);
}
return result;
}
const arr = [1, 2, 3, 4, 5];
const reversedArr = reverseArray(arr);
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
原地反转数组
如果需要原地反转数组(不创建新数组),可以使用双指针方法:
function reverseArrayInPlace(arr) {
let left = 0;
let right = arr.length - 1;
while (left < right) {
[arr[left], arr[right]] = [arr[right], arr[left]];
left++;
right--;
}
return arr;
}
const arr = [1, 2, 3, 4, 5];
reverseArrayInPlace(arr);
console.log(arr); // 输出: [5, 4, 3, 2, 1]
反转字符串
JavaScript 字符串没有 reverse 方法,可以通过以下方式反转:

function reverseString(str) {
return str.split('').reverse().join('');
}
const str = 'hello';
const reversedStr = reverseString(str);
console.log(reversedStr); // 输出: 'olleh'
或者使用扩展运算符:
function reverseString(str) {
return [...str].reverse().join('');
}
使用递归反转数组
递归也可以实现数组反转:
function reverseArrayRecursive(arr, result = []) {
if (arr.length === 0) return result;
result.push(arr.pop());
return reverseArrayRecursive(arr, result);
}
const arr = [1, 2, 3, 4, 5];
const reversedArr = reverseArrayRecursive([...arr]);
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]






