js兩個變量互換值

js兩個變量交換值

這個問題看似很基礎,可是有不少的實現方式,你知道的有多少呢,網上也有不少的方法,下面就來總結一下javascript

  • 中間變量(臨時變量)
臨時變量其實很好理解,經過一箇中間變量進行交換值
  var strA = "a"; var strB = "b"; var strC;//中間變量 # 開始 strC = strB;//strC值是b strB = strA;//此時strB已經變成strA strA = strC;//讓strA賦值strB的值 
  • 使用加減(針對數字)
var a=2,b=3; 加法算: a +=b;//a=5,b=3 b =a-b;//b=2 a =a-b;//b=3 減法算: a +=b;//a=5 b = a-b;//b=2; a -=b;//a=3 兩種方法都須要兩個值相加,而後作對於的加減算 
  • 對象和數組
var a="1",b="2"; 對象的方法: 先把a變成一個對象,即a={a:b,b:a} b=a.a;//1 a=a.b;//2 數組的方法: 數組其實和對象的思想差很少 a=[a,b]; b=a[0]; a=b[1]; 
  • 萬能法(運用運算符優先級)
公式:a=[b,b=a][0] var a="1",b="code"; a=[b,b=a][0];//這樣就成功了 console.log(a,b);//code 1 
  • ES6的解構賦值php

    什麼是解構賦值?
    解構賦值容許你使用相似數組或對象字面量的語法將數組和對象的屬性賦給各類變量。這種賦值語法極度簡潔,同時還比傳統的屬性訪問方法更爲清晰。java

數組與迭代器的解構
  語法:[ variable1, variable2, ..., variableN ] = array; 這將爲variable1到variableN的變量賦予數組中相應元素項的值 

能夠去看看解構的賦值:http://es6.ruanyifeng.com/#docs/destructuringes6

let a = "one",b = "two"; [a, b] = [b, a]; console.log(a, b);//two one 
  • 利用try catch交換
var a=1,b=2; a=(function(){; try{return b} finally{b=a}} )(); 或字符串 var a = "aaa", b = "bbb"; a = (function() {; try { return b } finally { b = a } })(); console.log(a, b); 
  • 異或運算(針對數字)
var a = 1; // 二進制:0001 var b = 2; // 二進制:0010 a = a ^ b; // 計算結果:a = 0011, b = 0010 b = a ^ b; // 計算結果:a = 0011, b = 0001 a = a ^ b; // 計算結果:a = 0010, b = 0001 本身能夠動手試一下 例子: var a = 0; var b = 1; a = (b = (a ^= b) ^ b) ^ a; console.log(a,b) 例子: var a = 0; // 二進制:0001 var b = 1; // 二進制:0010 a ^=b; b ^=a; a ^=b; console.log(a,b) 
  • 數組的兩個值的交換
var arr = [item0,item1,...,itemN]; //最初使用這段代碼來交換第0個和第K(k<N)個元素 arr[0] = arr.splice(k, 1, arr[0])[0]; var arr = [1,2,3,"aaa","bbb","ccc"]; arr[0] = arr.splice(3, 1, arr[0])[0]; console.log(arr.toString())//aaa,2,3,1,bbb,ccc
做者:程序蝸牛 連接:https://www.jianshu.com/p/fb863e73862f 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索