翻转实现方式js
翻转数组的 JavaScript 实现方法
方法一:使用 Array.prototype.reverse()
直接调用数组的 reverse() 方法,会原地修改原数组并返回翻转后的结果:
const arr = [1, 2, 3];
const reversed = arr.reverse();
console.log(reversed); // [3, 2, 1]
console.log(arr); // [3, 2, 1](原数组被修改)
方法二:扩展运算符 ... + reverse()
若需保留原数组,可通过扩展运算符创建新数组再翻转:

const arr = [1, 2, 3];
const reversed = [...arr].reverse();
console.log(reversed); // [3, 2, 1]
console.log(arr); // [1, 2, 3](原数组不变)
方法三:reduce() 实现
通过 reduce 从右向左遍历构建新数组:
const arr = [1, 2, 3];
const reversed = arr.reduce((acc, cur) => [cur, ...acc], []);
console.log(reversed); // [3, 2, 1]
方法四:for 循环手动翻转
通过循环交换首尾元素位置(需处理奇偶长度):

function reverseArray(arr) {
const result = [...arr];
for (let i = 0; i < Math.floor(result.length / 2); i++) {
[result[i], result[result.length - 1 - i]] =
[result[result.length - 1 - i], result[i]];
}
return result;
}
console.log(reverseArray([1, 2, 3])); // [3, 2, 1]
方法五:reduceRight() 实现
利用 reduceRight 从右向左合并元素:
const arr = [1, 2, 3];
const reversed = arr.reduceRight((acc, cur) => [...acc, cur], []);
console.log(reversed); // [3, 2, 1]
注意事项
- 直接调用
reverse()会修改原数组,需注意副作用。 - 性能敏感场景建议测试不同方法的执行效率(通常原生
reverse()最快)。 - 字符串翻转可先转为数组再操作:
str.split('').reverse().join('')。






