fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

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

Open haizhilin2013 opened this issue 6 years ago • 14 comments

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

haizhilin2013 avatar May 31 '19 20:05 haizhilin2013

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

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

异或取值

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

xiangshuo1992 avatar Jun 02 '19 02:06 xiangshuo1992

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

chwech avatar Jun 03 '19 02:06 chwech

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

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

异或取值

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

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

wenyejie avatar Jun 03 '19 06:06 wenyejie

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

myprelude avatar Jun 13 '19 06:06 myprelude

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

ES 6 这个 优秀

chenliwen123 avatar Jul 20 '19 00:07 chenliwen123

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

seho-dev avatar Sep 15 '19 07:09 seho-dev

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

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

在 2019年9月15日,下午3:13,LAO_SHEN <[email protected]mailto:[email protected]> 写道:

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

— 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.

vincent-yan avatar Sep 16 '19 00:09 vincent-yan

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

zxl-lxz avatar Mar 31 '20 05:03 zxl-lxz

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

blueRoach avatar Jul 22 '20 13:07 blueRoach

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

Alex-Li2018 avatar Aug 11 '20 07:08 Alex-Li2018

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

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

异或取值

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

smile-2008 avatar Nov 12 '20 07:11 smile-2008

分享个新鲜的用法

let a = 0;
let b = 1;
a = [b, b = a][0];
console.log(a, b);

OldSixLi avatar Feb 22 '22 03:02 OldSixLi

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

xiaoqiangz avatar Jun 06 '22 06:06 xiaoqiangz

ES6解构赋值 [a, b] = [b, a]; ES5 a = a + b; b = a - b; a = a - b;

wyy-g avatar Sep 19 '22 14:09 wyy-g