js实现逆序
数组逆序
在JavaScript中,可以使用reverse()方法直接对数组进行逆序操作。该方法会改变原数组。
const arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr); // 输出: [5, 4, 3, 2, 1]
字符串逆序
字符串没有内置的逆序方法,但可以通过以下方式实现:

- 将字符串转为数组后逆序再合并
- 使用循环从后向前拼接字符
// 方法1: 转为数组逆序
const str = "hello";
const reversedStr = str.split('').reverse().join('');
console.log(reversedStr); // 输出: "olleh"
// 方法2: 循环拼接
function reverseString(str) {
let reversed = '';
for (let i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}
return reversed;
}
console.log(reverseString("world")); // 输出: "dlrow"
数字逆序
数字逆序需要先转为字符串,逆序后再转回数字:

function reverseNumber(num) {
const reversed = parseInt(num.toString().split('').reverse().join(''));
return Math.sign(num) * reversed; // 处理负数情况
}
console.log(reverseNumber(12345)); // 输出: 54321
console.log(reverseNumber(-123)); // 输出: -321
链表逆序
对于链表数据结构,需要遍历链表并反转指针方向:
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
function reverseLinkedList(head) {
let prev = null;
let current = head;
while (current !== null) {
const next = current.next;
current.next = prev;
prev = current;
current = next;
}
return prev;
}
递归实现逆序
递归方法可以实现字符串或链表的逆序:
// 递归逆序字符串
function reverseStringRecursive(str) {
if (str === "") return "";
return reverseStringRecursive(str.substr(1)) + str[0];
}
// 递归逆序链表
function reverseLinkedListRecursive(head) {
if (!head || !head.next) return head;
const reversed = reverseLinkedListRecursive(head.next);
head.next.next = head;
head.next = null;
return reversed;
}






