js兩個變數互換值

2022-02-21 11:08:24 字數 2087 閱讀 4087

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

臨時變數其實很好理解,通過乙個中間變數進行交換值

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=

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

陣列與迭代器的解構

語法:[ variable1, variable2, ..., variablen ] = array;

這將為variable1到variablen的變數賦予陣列中相應元素項的值

可以去看看解構的賦值:

let a = "one",b = "two";

[a, b] = [b, a];

console.log(a, b);//two one

var a=1,b=2;

a=(function()

finally}

)();

或字串

var a = "aaa",

b = "bbb";

a = (function() finally

})();

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(k0] = 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

面試題 互換兩個變數的值

互換兩個任意值變數的值,如 int a 1 int b 2 方案一 用變數相加減的方法 面試中使用 a a b b a b a a b 方案二 用變數相加減賦值的方法 面試中使用 b a b a b 方案三 用異或的特點實現 面試中使用 a a b b a b a b b a a a b a b a...

互換兩個變數,不使用中間變數

第一種方法 a a b b a b a a b 如下 cpp view plain copy include stdio.h int main void 缺點 可能越界 第二種方法 解決方法 a b異或的結果 和a異或得b 和b異或得a a a b b a b a a b 如下 cpp view p...

交換兩個變數的值

交換兩個變數的值 交換兩個變數的值是我們學習c語言常見的問題,通常我們採取的方式是定義中間變數,通過中間變數交換這兩個變數值。1 直接在主函式裡完成 int a 2,b 3 int t t a a b b t 2 通過定義swap 完成交換,其中可以通過引用 位址傳遞完成變數值交換 引用 inclu...