js实现反转
实现字符串反转的方法
使用JavaScript反转字符串可以通过多种方式实现。以下是几种常见的方法:
方法1:使用split()、reverse()和join()方法
const str = "hello";
const reversedStr = str.split('').reverse().join('');
console.log(reversedStr); // 输出 "olleh"
方法2:使用for循环
const str = "hello";
let reversedStr = '';
for (let i = str.length - 1; i >= 0; i--) {
reversedStr += str[i];
}
console.log(reversedStr); // 输出 "olleh"
方法3:使用reduce()方法

const str = "hello";
const reversedStr = str.split('').reduce((acc, char) => char + acc, '');
console.log(reversedStr); // 输出 "olleh"
方法4:使用递归
function reverseString(str) {
return str === '' ? '' : reverseString(str.substr(1)) + str[0];
}
const reversedStr = reverseString("hello");
console.log(reversedStr); // 输出 "olleh"
实现数组反转的方法
JavaScript中数组反转可以直接使用reverse()方法:

const arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr); // 输出 [5, 4, 3, 2, 1]
如果需要不改变原数组的反转,可以先创建副本:
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 reverseNumber(num) {
const reversed = parseInt(
Math.abs(num).toString().split('').reverse().join('')
) * Math.sign(num);
return reversed;
}
console.log(reverseNumber(123)); // 输出 321
console.log(reverseNumber(-456)); // 输出 -654
console.log(reverseNumber(1200)); // 输出 21
实现链表反转的方法
对于链表数据结构,反转操作需要改变节点指针方向:
class Node {
constructor(value, next = null) {
this.value = value;
this.next = next;
}
}
function reverseLinkedList(head) {
let prev = null;
let current = head;
while (current) {
const next = current.next;
current.next = prev;
prev = current;
current = next;
}
return prev;
}
// 示例链表: 1 -> 2 -> 3 -> 4 -> 5
const list = new Node(1, new Node(2, new Node(3, new Node(4, new Node(5)))));
const reversedList = reverseLinkedList(list);
// 反转后链表: 5 -> 4 -> 3 -> 2 -> 1
以上方法涵盖了JavaScript中常见的反转操作,可以根据具体需求选择合适的方法。





