由于gdoron指出,[b] [b = a,0]如何在a和b之间交换?
var a = "a";
var b = "b";
a = [b][b = a,0];
将交换a
和b
,虽然它看上去有点哈克,它引发了我的好奇,我在它的工作原理很好奇。这对我没有任何意义。
由于gdoron指出,[b] [b = a,0]如何在a和b之间交换?
var a = "a";
var b = "b";
a = [b][b = a,0];
将交换a
和b
,虽然它看上去有点哈克,它引发了我的好奇,我在它的工作原理很好奇。这对我没有任何意义。
var a = "a";
var b = "b";
a = [b][b = a, 0];
让我们最后一行到打碎:
[b] // Puts b in an array - a safe place for the swap.
[b = a] // Assign a in b
[b = a,0] // Assign a in b and return the later expression - 0 with the comma operator.
所以最后是a =[b][0]
- 的[b]
阵列中的第一个对象=>b
分配给a
阅读@am不是我在这个问题上的意见:
When is the comma operator useful?
这是他的代码......
所以当'b'被放入数组中时,它是安全的吗? – 2012-03-25 22:01:23
@Derek。当'b = a'时它不会丢失 – gdoron 2012-03-25 22:02:30
这可能有助于(或阻碍)认为它的语义上等价的λ建设方面(在这里,参数c
取元素0的地方):
a = (function(c) { b = a; return c; })(b);
_“有点哈克”_ ???很多hacky ... :-) – gdoron 2012-03-25 21:59:27
相关:[交换两个参数值有什么更好的方法?](http://stackoverflow.com/questions/8482402/whats-a-better-way-to-swap-双参数值) – 2012-03-25 22:05:30
对Godron的其他答案发表评论并要求澄清您的原始问题是否更有意义? – 2012-03-25 22:36:51