反转实现方式js
反转数组的实现方式(JavaScript)
使用 Array.prototype.reverse() 方法
这是最直接的方式,会原地修改原数组并返回反转后的结果:
const arr = [1, 2, 3];
const reversedArr = arr.reverse();
console.log(reversedArr); // [3, 2, 1]
console.log(arr); // [3, 2, 1](原数组被修改)
使用扩展运算符 ... 和 reverse()(不修改原数组)
通过创建新数组避免修改原数组:
const arr = [1, 2, 3];
const reversedArr = [...arr].reverse();
console.log(reversedArr); // [3, 2, 1]
console.log(arr); // [1, 2, 3](原数组不变)
使用 reduce() 方法
通过累加器从右向左构建新数组:
const arr = [1, 2, 3];
const reversedArr = arr.reduce((acc, current) => [current, ...acc], []);
console.log(reversedArr); // [3, 2, 1]
使用 for 循环
手动遍历数组并反转:
const arr = [1, 2, 3];
const reversedArr = [];
for (let i = arr.length - 1; i >= 0; i--) {
reversedArr.push(arr[i]);
}
console.log(reversedArr); // [3, 2, 1]
使用 Array.from() 和 map()
结合索引计算实现反转:
const arr = [1, 2, 3];
const reversedArr = Array.from({ length: arr.length }, (_, i) => arr[arr.length - 1 - i]);
console.log(reversedArr); // [3, 2, 1]
反转字符串的实现方式(JavaScript)
使用 split()、reverse() 和 join()
将字符串转为数组反转后再合并:
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"
使用 for...of 循环
遍历字符串并拼接:

const str = "hello";
let reversedStr = "";
for (const char of str) {
reversedStr = char + reversedStr;
}
console.log(reversedStr); // "olleh"
注意事项
- 数组的
reverse()方法会修改原数组,若需保留原数组,需先创建副本。 - 字符串不可变,所有方法均需返回新字符串。






