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];」。
本教學操作環境:windows10系統、ECMAScript 6版、Dell G3電腦。
#方法一:異或置換法
方案分析:這裡採用二進位異或的方法交換數值。異或的特徵:同數為0,異數為1;將使用者輸入的值分別轉換成二進制,在進行異或,JS裡面的異或符號是用shift 6,透過兩次異或還是本身這個原理,即可實現兩個數的交換。
注意:其變換形式:a = (b^=a^=b)^a;【#一行程式碼搞定兩數置換】
nbsp;html> <meta> <meta> <meta> <title>Document</title> <script> // 方法一:异或置换法(同数为0,异数为1) var a = prompt('请输入a的值'); var b = prompt('请输入b的值'); a = a ^ b; b = a ^ b; a = a ^ b; //a = (b ^= a ^= b) ^ a; //与上面三行实现同理只是变成一行代码 document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b); </script>
運行結果:
方法二:陣列特殊置換法【進階】
方案分析:這裡使用的是特定數組的方法,將兩個數直接轉換,首先假設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('请输入a的值'); var b = prompt('请输入b的值'); a = [b, b = a][0]; document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + 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('请输入a的值'); var b = prompt('请输入b的值'); a = [a, b]; //接收用户输入的值 document.write('交换前a,b的值是' + a + '<br>'); b = a[0]; //将第一值赋给b必须写在a的前面 a = a[1]; //将第二值赋给a document.write(a); document.write(b); </script>
nbsp;html> <meta> <meta> <meta> <title>Document</title> <script> // 方法四:ES6赋值法 var a = prompt('请输入a的值'); var b = prompt('请输入b的值'); [a, b] = [b, a]; document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b); </script>
以上是使用es6怎麼實現兩個變數的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!