【发布时间】:2011-10-22 10:04:00
【问题描述】:
var a,b,c;
var arr = [1,2,3];
[a,b,c] = arr;
此代码在 Firefox 中完美运行,结果 a=1、b=2 和 c=3,
但它在 Chrome 中不起作用。是 Chrome 错误还是
它不是有效的 javascript 代码? (我在 javascript 引用中找不到它)
如何修改此代码以使其适用于 Chrome,同时对它的损坏最小?
(我真的不喜欢一直写 a = arr[0]; b = arr[1]... 或与 arr.shift() 相同)
附:这只是一个示例代码,在实际代码中
我从我的代码之外的某个地方得到了 arr 数组
【问题讨论】:
-
Chrome 会发生什么?您收到什么错误消息?
-
它给了我以下信息:ReferenceError 参数:Array[0] 消息:“—”堆栈:“—”类型:“invalid_lhs_in_assignment”proto:错误
-
FWIW,jslint.com 说它很好(在修复了一些空格之后;虽然我不知道它会评估什么),但 jshint.com 说这是一个糟糕的任务。
-
有趣!这是一个奇怪的结构,我很惊讶它适用于大多数浏览器。好奇地知道这甚至是有效的 JS(显然是有效的,但可能是由于引擎的实现)。
-
关于您可以在 Chrome 中使用哪些代码的实际问题,这里是之前的讨论:stackoverflow.com/questions/204444/…。
标签: javascript arrays variable-assignment