我希望能够在节点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] = [[],[],[]]
有什么想法吗?
答案 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 post或this 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。