反转数组
Posted 好_快
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转数组相关的知识,希望对你有一定的参考价值。
1、直接反转
function reverse(arr)
//拷贝一下数据,防止改变原数组
const copyArr = [...arr];
/*
* 反转过程
* 1、copyArr[0] 和 copyArr[7] 交换 (copyArr.length - 1 - 0)
* 2、copyArr[1] 和 copyArr[6] 交换 (copyArr.length - 1 - 1)
* 3、copyArr[2] 和 copyArr[5] 交换 (copyArr.length - 1 - 2)
* 4、copyArr[3] 和 copyArr[4] 交换 (copyArr.length - 1 - 3)
* 总共交换4次,数组长度的一半
* copyArr[i] 和 copyArr[copyArr.length - 1 - i]
* */
for (let i = 0; i < copyArr.length / 2; i++)
const tempItem = copyArr[i];
copyArr[i] = copyArr[copyArr.length - 1 - i];
copyArr[copyArr.length - 1 - i] = tempItem;
return copyArr;
2、借助一个新的数组
function reverse(arr)
/*
* 反转过程
* 1、copyArr[0] 保存 arr[7] (arr.length - 1 - 0)
* 2、copyArr[1] 保存 arr[6] (arr.length - 1 - 1)
* 3、copyArr[2] 保存 arr[5] (arr.length - 1 - 2)
* 4、copyArr[3] 保存 arr[4] (arr.length - 1 - 3)
* 5、copyArr[4] 保存 arr[3] (arr.length - 1 - 3)
* 6、copyArr[5] 保存 arr[2] (arr.length - 1 - 3)
* 7、copyArr[6] 保存 arr[1] (arr.length - 1 - 3)
* 8、copyArr[7] 保存 arr[0] (arr.length - 1 - 3)
*
* 总共交换8次,数组长度
* copyArr[i] 和 arr[copyArr.length - 1 - i]
* */
const copyArr = [];
for (let i = 0; i < arr.length; i++)
copyArr[i] = arr[arr.length - 1 - i];
return copyArr;
3、使用 reverse 函数
const dataArr = [1, 2, 3, 4, 5, 6, 7, 8];
//拷贝数组,防止操作原数组
const copyArr = [...dataArr];
//调用函数
const reverseArr = copyArr.reverse();
console.log(reverseArr);
console.log(copyArr);
以上是关于反转数组的主要内容,如果未能解决你的问题,请参考以下文章