【问题标题】:Can I do something like [a,b,c] = [1,2,3] in node js? [duplicate]我可以在节点 js 中做类似 [a,b,c] = [1,2,3] 的事情吗? [复制]
【发布时间】:2014-03-15 13:43:50
【问题描述】:

我希望能够在节点 js 中做这种赋值:

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

或者就像在 python 中一样

a,b,c = 1,2,3

这样我就有 a=1、b=2 和 b=3。

其实这样做的目的是为了做类似的事情

[a,b,c] = somefunc()

或用于数组声明

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

有什么想法吗?

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    还没有 - Node.js 使用 V8 引擎,它实现了 ECMA Script 5。

    但此功能将在下一个 ECMA 脚本 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();
    

    (来自 wiki 的示例)。


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

    【讨论】:

    • 反正我就是喜欢node js...
    【解决方案2】:

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

    除非您使用的是 JavaScript 1.7。然后它将完全按照您编写的那样工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-17
      • 2016-12-23
      • 1970-01-01
      • 2015-11-17
      • 2020-03-08
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      相关资源
      最近更新 更多