【发布时间】:2015-02-19 21:43:16
【问题描述】:
JavaScript 是否有语言结构或类似于 php list 命令的东西? http://php.net/manual/en/function.list.php
此命令将在单个语句中将数组的值分配给变量。例如,给定数组:
$info = array('Coffee', 'brown', 'caffeine');
list 命令会将每个数组元素值分配给命名变量:
list($drink, $color, $power) = $info;
这样:
echo "$drink is $color and $power makes it special."; // results in:
Coffee is brown and caffeine makes it special.
因此,这是一种在一个语句中为多个变量赋值的简单方法。
JavaScript 是否有等效的东西,每个变量不必单独分配?
有没有办法使用对象的属性或数组的元素来做到这一点?如果没有,是否可以编写一个可以做到这一点的函数?如果这样做的唯一方法是通过函数,那么函数将需要访问定义变量的范围。
我在这个五年前的问题中尝试了解决方案:Javascript equivalent of PHP's list(),但它们不起作用。数组原型更改无法在我的 node.js 环境中分配变量,左手数组分配是 Chrome 中的引用错误。有人谈论一种实验性的新技术,但这种说法已经有好几年了。我想知道是否有比链接问题中列出的更好的解决方案。
【问题讨论】:
-
当然可以编写一个函数来执行此操作,但为什么不跳过中间步骤,直接创建一个具有命名属性的对象呢?自从我真正使用 PHP 以来已经有一段时间了,但我不记得曾经有过这种场景的用例。
-
很遗憾听到这个消息,克里斯;我会暂时重新打开这个问题,但请edit你的问题添加该信息(“我尝试了这个问题的答案[链接],他们没有工作,因为......”)以防止其他人关闭为再次被骗,一旦你的问题重新打开。祝你好运!
-
@DavidThomas:你很幸运,我通读了 cmets,我差点又重提了这个问题 :-) 解构仍然是最先进的,所以这个问题需要添加很多新东西.也许对另一个问题给予赏金会更合适。
-
我不太愿意将其发布为答案(因为我不是 node.js 方面的专家),但似乎 node 还没有解构:stackoverflow.com/q/17379277/899126
-
我认为 node (v8) 将在不久的将来实现这一点,因为它在 ES6 中。在那之前,你只能手动分配(或交叉编译器)。
标签: javascript php node.js symbol-table language-construct