前端杂谈 · Web

Javascript反转数组

•̀.̫•́✧ · 5月25日 · 2019年本文702字 · 阅读2分钟496

代码实现

Javascript反转数组-歪?是3.1415926吗

第一种_第三方变量的形式交换:

<script>
 
        var arr = [10,20,30,40,50];
 
        for(var i = 0; i<parseInt(arr.length/2);i++){
 
           var num = arr[i];
 
           arr[i] = arr[arr.length-i-1];
 
           arr[arr.length-i-1] = num;  
 
        }
 
        console.log(arr);//控制台结果 [50,40,30,20,10]
 
</script>

以下两种方式仅限于数字类型

第二种方式_不采用第三方变量交换:

<script>
 
        var arr = [10,20,30,40,50];
 
        for(var i = 0; i<parseInt(arr.length/2);i++){
 
            arr[i] = arr[arr.length-i-1] + arr[i];
 
            arr[arr.length-i-1] = arr[i] - arr[arr.length-i-1];
 
            arr[i] = arr[i] - arr[arr.length-i-1] ;
 
        }
 
        console.log(arr);//控制台[50,40,30,20,10]
 
</script>

第三种方式_位运算:效率最高

<script>
        
        var arr = [10,20,30,40,50];
 
        for(var i = 0; i<parseInt(arr.length/2);i++){
 
            arr[i] = arr[i] ^ arr[arr.length-i-1];
 
            arr[arr.length-i-1] = arr[i] ^ arr[arr.length-i-1];
 
            arr[i] = arr[i] ^ arr[arr.length-i-1];
 
        }
 
        console.log(arr);
</script>
2 条回应
  1. elva2019-5-27 · 19:43

  2. •̀.̫•́✧2019-5-27 · 19:41