js实现reserve
实现数组反转
使用JavaScript实现数组反转可以通过多种方法完成。以下是几种常见的实现方式:
使用Array.prototype.reverse()方法
这是最直接的方式,直接调用数组的reverse()方法:
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reverse();
console.log(reversedArr); // [5, 4, 3, 2, 1]
手动实现反转
如果不使用内置方法,可以手动实现数组反转:
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];
console.log(reverseArray(arr)); // [5, 4, 3, 2, 1]
使用reduce方法
利用reduce方法也可以实现数组反转:
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reduce((acc, curr) => [curr, ...acc], []);
console.log(reversedArr); // [5, 4, 3, 2, 1]
原地反转算法
如果需要原地反转数组(不创建新数组),可以使用以下方法:
function reverseInPlace(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];
console.log(reverseInPlace(arr)); // [5, 4, 3, 2, 1]
字符串反转
反转字符串可以通过先转换为数组再反转,或者直接使用字符串方法:
使用数组方法
const str = "hello";
const reversedStr = str.split("").reverse().join("");
console.log(reversedStr); // "olleh"
使用reduce方法
const str = "hello";
const reversedStr = [...str].reduce((acc, char) => char + acc, "");
console.log(reversedStr); // "olleh"
使用递归

function reverseString(str) {
return str === "" ? "" : reverseString(str.substr(1)) + str[0];
}
console.log(reverseString("hello")); // "olleh"
这些方法可以根据具体需求选择使用,内置的reverse()方法最简单,手动实现则提供了更多灵活性。






