谁能想到一个更好的解决方案来重组变量a,使其成为包含其先前值的普通对象?我不喜欢这样,我更喜欢一行,但是它必须仍然可读。

a = "somevalue"
b = "somekey"

tmp = a
a = {}
a[b] = tmp


让我改写一下:所需的结果(从上面的代码:实际的)是这样的:

a = { "somekey": "somevalue" }


当“ somekey”和“ somevalue”实际上是变量ba时,有没有另一种更短的方法来实现此目的?

最佳答案

干得好...

(a = (b = [a, b, {}])[2])[b[1]] = b[0];


不能说我推荐它。



也许这会好一点...

(a = (b = [a, b], {}))[b[1]] = b[0];




当然不短于您所拥有的。



也许更容易阅读,但仍会变得更短

(b = [a, b], a = {})[b[1]] = b[0];

10-04 22:30
查看更多