我可以在节点js中执行类似[a,b,c] = [1,2,3]的操作吗?

时间:2014-03-15 13:43:50

标签: javascript node.js

我希望能够在节点js中进行这种分配:

[a,b,c] = [1,2,3]

或者就像在python中一样

a,b,c = 1,2,3

这样我就有了= 1,b = 2和b = 3.

实际上,这样做的目的是做一些像

这样的事情
[a,b,c] = somefunc()

或用于数组声明

[a,b,c] = [[],[],[]]

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

"节点"不是一种语言。你真的在问你是否可以用JavaScript做到这一点,不,你不能。 JavaScript中没有任何形式的destructured assignment(1.7之前的版本),也没办法做出类似的工作。您无法分配给数组。

除非您使用的是JavaScript 1.7。然后它就会像你写的一样工作。

答案 1 :(得分:5)

尚未 - Node.js使用V8引擎,它实现了ECMA Script 5.

但是这个功能将在下一个ECMA Script 6发行版中提供。它被描述为in this blog postthis wiki。 V8(因此也是Node.js)将实现它,如per this issue

一旦实施,它将如下所示:

[a, b] = [b, a]

或者这个:

function f() { return [1, 2, 3] }
var [a, , b] = f();

(来自维基的例子)。


如果你真的需要这个,你总是可以使用像Google Traceur compiler这样的工具,它允许你编写ES6代码并将其“编译”成与所有现代浏览器(和Node.js)兼容的JavaScript。