首頁 > web前端 > 前端問答 > 使用es6怎麼實現兩個變數的轉換

使用es6怎麼實現兩個變數的轉換

青灯夜游
發布: 2022-10-24 18:20:52
原創
2297 人瀏覽過

4種實作:1、採用二進位異或的方法交換數值,語法「a = a ^ b;b = a ^ b; a = a ^ b;」或「a=(b^ =a^=b)^a;”;2.利用數組下標來交換,語法“a=[a, b];b=a[0];a=a[1]; ”;3、數組特殊置換法,語法「a = [b, b = a][0]; 」;4、對數組元素進行提取和賦值,語法「[a, b] = [b, a];」。

使用es6怎麼實現兩個變數的轉換

本教學操作環境:windows10系統、ECMAScript 6版、Dell G3電腦。

es6實作兩個變數轉換的4種方法

#方法一:異或置換法 

方案分析:這裡採用二進位異或的方法交換數值。異或的特徵:同數為0,異數為1;將使用者輸入的值分別轉換成二進制,在進行異或,JS裡面的異或符號是用shift 6,透過兩次異或還是本身這個原理,即可實現兩個數的交換。  

注意:其變換形式:a = (b^=a^=b)^a;【#一行程式碼搞定兩數置換

nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>Document</title>



    <script>
        // 方法一:异或置换法(同数为0,异数为1)
        var a = prompt(&#39;请输入a的值&#39;);
        var b = prompt(&#39;请输入b的值&#39;);
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
        //a = (b ^= a ^= b) ^ a; //与上面三行实现同理只是变成一行代码
        document.write(&#39;交换后a的值是&#39; + a + &#39;<br>&#39;, &#39;交换后b的值是&#39; + b);
    </script>


登入後複製

運行結果: 

使用es6怎麼實現兩個變數的轉換

使用es6怎麼實現兩個變數的轉換

使用es6怎麼實現兩個變數的轉換

方法二:陣列特殊置換法【進階】

 方案分析:這裡使用的是特定數組的方法,將兩個數直接轉換,首先假設a=6,b=9則有a=[9,b=a][0]>>>a=[9,b=6][ 0]>>>a=[9,6][0]>>>b=6>>>a[0]=9>>>a=9。

nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>Document</title>



    <script>
        // 方法二:数组置换法
        var a = prompt(&#39;请输入a的值&#39;);
        var b = prompt(&#39;请输入b的值&#39;);
        a = [b, b = a][0]; 
        document.write(&#39;交换后a的值是&#39; + a + &#39;<br>&#39;, &#39;交换后b的值是&#39; + b);
    </script>


登入後複製

方法三:陣列普通置換法 

 方案分析:

################################################## ###這裡使用的是普通數組置換的方法,首先將把a,b的值存放在a[a,b]這個數組中,其次先將a[0]值賦給b,再將a[1 ]的值賦給a,不這樣會導致a與b的值相等。 ### ###
nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>Document</title>



    <script>
        // 方法三:数组普通置换法
        var a = prompt(&#39;请输入a的值&#39;);
        var b = prompt(&#39;请输入b的值&#39;);
        a = [a, b]; //接收用户输入的值
        document.write(&#39;交换前a,b的值是&#39; + a + &#39;<br>&#39;);
        b = a[0]; //将第一值赋给b必须写在a的前面
        a = a[1]; //将第二值赋给a
        document.write(a);
        document.write(b);
    </script>


登入後複製
#########方法四:ES6賦值法 ############ ######方案分析:################################################################################################### ##這裡使用的是ES6置換的方法,由於ES6允許我們對數組和物件提取,所以可以進行變數賦值,來實現兩數直接交換。 ######
nbsp;html>



    <meta>
    <meta>
    <meta>
    <title>Document</title>



    <script>
        // 方法四:ES6赋值法
        var a = prompt(&#39;请输入a的值&#39;);
        var b = prompt(&#39;请输入b的值&#39;);
        [a, b] = [b, a];
        document.write(&#39;交换后a的值是&#39; + a + &#39;<br>&#39;, &#39;交换后b的值是&#39; + b);
    </script>


登入後複製
###【相關推薦:###javascript影片教學###、###程式設計影片###】####

以上是使用es6怎麼實現兩個變數的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板