反转数组

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);

代码链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值