翻转实现方式js
数组翻转的实现方式
使用 Array.prototype.reverse() 方法可以直接翻转数组。该方法会修改原数组,并返回翻转后的数组。
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reverse();
console.log(reversedArr); // [5, 4, 3, 2, 1]
console.log(arr); // [5, 4, 3, 2, 1]
不修改原数组的翻转方式
使用扩展运算符或 Array.prototype.slice() 创建数组副本,再翻转副本以避免修改原数组。
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];
console.log(reverseArray(arr)); // [5, 4, 3, 2, 1]
字符串翻转的实现方式
字符串可以通过拆分为数组、翻转后再拼接的方式实现翻转。
const str = "hello";
const reversedStr = str.split("").reverse().join("");
console.log(reversedStr); // "olleh"
手动实现字符串翻转
通过循环遍历字符串,从末尾开始拼接字符。
function reverseString(str) {
let reversed = "";
for (let i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}
return reversed;
}
const str = "hello";
console.log(reverseString(str)); // "olleh"
使用递归翻转数组或字符串
递归方式可以用于翻转数组或字符串,通过不断分解问题实现翻转。
function reverseRecursive(arr) {
if (arr.length === 0) return [];
return [arr[arr.length - 1], ...reverseRecursive(arr.slice(0, -1))];
}
const arr = [1, 2, 3, 4, 5];
console.log(reverseRecursive(arr)); // [5, 4, 3, 2, 1]





