Fe-interview: [js] 第46天 写一个使两个整数进行交换的方法(不能使用临时变量)

Created on 31 May 2019  ·  11Comments  ·  Source: haizlin/fe-interview

第46天 写一个使两个整数进行交换的方法(不能使用临时变量)

js

Most helpful comment

let a = 1, b= 2
[a, b] = [b, a]

All 11 comments

利用运算符优先级和0*
b = a + 0 * (a = b);
利用执行顺序

a = a + b;
b = a - b;
a = a - b;

异或取值

a ^= b;
b ^= a;
a ^= b;
let a = 1, b= 2
[a, b] = [b, a]

利用运算符优先级和0*
b = a + 0 * (a = b);
利用执行顺序

a = a + b;
b = a - b;
a = a - b;

异或取值

a ^= b;
b ^= a;
a ^= b;

我去这种骚操作, 我只知道一个解构.

  • ES6
let [a,b] = [b,a]  
  • ES5
var a = 1,b = 2;
a = b+a;
b = a-b;
a = a-b;
  • ES6
let [a,b] = [b,a]  
  • ES5
var a = 1,b = 2;
a = b+a;
b = a-b;
a = a-b;

ES 6 这个 优秀

不能使用临时变量的是什么意思求解答

1:a ^= b;
b ^= a;
a ^= b;

2:es6解构 [b,a]=[a,b]

在 2019年9月15日,下午3:13,LAO_SHEN <[email protected]notifications@github.com> 写道:

不能使用临时变量的是什么意思求解答


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/haizlin/fe-interview/issues/175?email_source=notifications&email_token=ABG6PUXYLHF4GJXAQSPTZ7LQJXOABA5CNFSM4HR54JIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6XKY3Y#issuecomment-531541103, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABG6PUUOD5FNV543LBYIXNDQJXOABANCNFSM4HR54JIA.

let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a, b); // => 2, 1

let a = 1, b = 2
return [a, b] = [b, a]

  1. 第一种
let b = 1
let c = 2
let tmp
tmp = b
b = c
c = tmp
  1. 第二种
    js let a = 1; let b = 2; [a, b] = [b, a];

利用运算符优先级和0*
b = a + 0 * (a = b);
利用执行顺序

a = a + b;
b = a - b;
a = a - b;

异或取值

a ^= b;
b ^= a;
a ^= b;
Was this page helpful?
0 / 5 - 0 ratings