数据结构与算法——使用原生js实现js中自带的reverse()方法

越学越觉得JavaScript是一门很强大,很神奇的语言,什么原型啦,闭包啦,继承啦,balabala一堆东西,弄得越清楚,越觉得JS很牛逼!!!

一、JS数组中的reverse()方法

  • 在JS中,数组是个很神奇的存在,不像其他语言一样,它不需要指定长度,元素的类型也很随意,甚至在底层,都已经为我们提供了具有翻转数组功能的reverse()方法,如果想实现以下要求:
将数组[1,2,3,4,5]变成[5,2,3,2,1]
  • 在JS中只需要调用reverse()方法:
var arr=[1,2,3,4,5];
arr.reverse();
console.log(arr);//[5,4,3,2,1];

二、模拟实现reverse()方法:

  • 实现的思路:
  • 实现数组的翻转主要就是不断将左边第一个数和右边最后一个数调换位置,接着将左边第二个数和右边倒数第二个数调换位置,这样一直实现左边和右边数字位置的调换,直到左边数的位置刚好等于右边数的位置即停止

  • 为此,我们需要一个变量left来保存当前数组左边的一个值,另外一个变量right来保存要与之交换的另外一个值
  • 具体实现如下:
<script>
    var arr=[1,2,3,4,5];
    function reverse(myArr){
        var left=0;//存储左边第一个位置
        var right=arr.length-1;//存储右边最后一个位置
        while(left<right){//停止进行的条件
        var temp=myArr[left];//利用一个中间变量来交换位置
        myArr[left]=myArr[right];
        myArr[right]=temp;
        left++;
        right--;
    }
    reverse(arr);
    console.log(arr);//[5,4,3,2,1]
</script>

好了,这样就实现了跟JS中自带的reverse()方法相同的功能

算法很难,但慢慢啃,总能啃完,继续加油吧~

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值