Javascript交换两个对象a、b,哪种方式更好?
在js中获得3种交换两个对象a和b的方法,但不确定它们之间是否有任何差异,以及哪一个更好 一, 二, 三, 定义“更好” 就个人而言,为了可读性,我会说第一个例子 如果我有2或3块白板,我可能会遵循第二个例子……第三个例子应该是死刑;) 定义“更好” 就个人而言,为了可读性,我会说第一个例子Javascript交换两个对象a、b,哪种方式更好?,javascript,swap,Javascript,Swap,在js中获得3种交换两个对象a和b的方法,但不确定它们之间是否有任何差异,以及哪一个更好 一, 二, 三, 定义“更好” 就个人而言,为了可读性,我会说第一个例子 如果我有2或3块白板,我可能会遵循第二个例子……第三个例子应该是死刑;) 定义“更好” 就个人而言,为了可读性,我会说第一个例子 如果我有2或3块白板,我可能会遵循第二个例子……第三个例子应该是死刑;) IMO,更好的方法是: var a = 1; var b = 3; [a, b] = [b, a]; console.log(a)
如果我有2或3块白板,我可能会遵循第二个例子……第三个例子应该是死刑;) IMO,更好的方法是:
var a = 1;
var b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
资料来源:《国际海事组织》,更好的办法是:
var a = 1;
var b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
资料来源:
ES6(Firefox和Chrome已经支持它(分解分配数组匹配)):但它的速度非常慢。
临时变量方法速度稍快,更通用,可读性也更高
ES6(Firefox和Chrome已经支持它(分解分配数组匹配)):但它的速度非常慢。
温度变量法的速度稍快,更通用,可读性也更高第三种方法在2015年之前是最简单的:pYep,但现在是2018年:)我总是尽可能倾向于可读性Ald Reagan:d第三种方法在2015年之前是最简单的:pYep,但现在是2018年:)只要可能,我总是倾向于可读性罗纳德·里根:关于边缘呢?关于边缘呢?@Xufox我的印象是,第一个数组确实创建了一个中间数组-
=
的右侧在对结果进行任何处理之前进行评估。解构后没有对数组的引用,但我认为已经创建了一个?@CertainPerformance哦,是的,它确实…@Xufox我的印象是第一个数组确实创建了一个中间数组-=
的右侧在对结果进行任何处理之前进行了计算。解构后没有对数组的引用,但我认为已经创建了一个?@CertainPerformance哦,是的,它确实…
temp = a;
a = b;
b = temp;
var a = 1;
var b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
[a,b] = [b,a];
b = [a, a = b][0]; // shorthand version