反转实现方式js
反转数组的 JavaScript 实现方法
使用 Array.prototype.reverse() 方法
这是最直接的方式,直接调用数组的 reverse() 方法会原地反转数组元素并返回反转后的数组。
const arr = [1, 2, 3, 4];
const reversedArr = arr.reverse();
console.log(reversedArr); // [4, 3, 2, 1]
使用 for 循环手动反转
通过遍历数组并将元素从后向前重新排列,可以手动实现反转。
const arr = [1, 2, 3, 4];
const reversedArr = [];
for (let i = arr.length - 1; i >= 0; i--) {
reversedArr.push(arr[i]);
}
console.log(reversedArr); // [4, 3, 2, 1]
使用 reduce 方法
利用 reduce 从数组末尾开始累积元素,生成反转后的数组。
const arr = [1, 2, 3, 4];
const reversedArr = arr.reduce((acc, _, i, original) => {
acc.push(original[original.length - 1 - i]);
return acc;
}, []);
console.log(reversedArr); // [4, 3, 2, 1]
使用扩展运算符和 map
结合 map 和数组索引,生成反转后的新数组。
const arr = [1, 2, 3, 4];
const reversedArr = [...arr].map((_, i, array) => array[array.length - 1 - i]);
console.log(reversedArr); // [4, 3, 2, 1]
使用递归实现反转
通过递归逐层处理数组的首尾元素,最终完成反转。
function reverseArray([head, ...tail], acc = []) {
if (tail.length === 0) return [head, ...acc];
return reverseArray(tail, [head, ...acc]);
}
const arr = [1, 2, 3, 4];
console.log(reverseArray(arr)); // [4, 3, 2, 1]
反转字符串的 JavaScript 实现方法
使用 split、reverse 和 join
将字符串拆分为字符数组,反转后再合并为字符串。
const str = "hello";
const reversedStr = str.split("").reverse().join("");
console.log(reversedStr); // "olleh"
使用 for...of 循环
遍历字符串并从前往后拼接字符,生成反转后的字符串。
const str = "hello";
let reversedStr = "";
for (const char of str) {
reversedStr = char + reversedStr;
}
console.log(reversedStr); // "olleh"
使用 reduce 方法
通过 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];
}
const str = "hello";
console.log(reverseString(str)); // "olleh"






