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()相同)
PS这只是一个示例代码,在实际代码中, 我从代码外的某个地方获取了arr数组 问题来源于stack overflow
这是JavaScript 1.7的新功能,称为Destructuring分配:
通过解构分配,可以使用与数组和对象文字相同的语法来从数组或对象中提取数据。
对象和数组文字表达式提供了一种创建临时数据包的简便方法。一旦创建了这些数据包,就可以按需要使用它们。您甚至可以从函数中返回它们。
您可以使用解构分配进行的一项特别有用的操作是在单个语句中读取整个结构,尽管您可以使用它们进行许多有趣的操作,如以下示例全文所示。
例如,您可以使用解构分配来交换值:
var a = 1; var b = 3; [a, b] = [b, a]; 此功能类似于Perl和Python等语言中的功能。
不幸的是,根据此版本表,尚未在Chrome中实现JavaScript 1.7。但它应该存在于:
火狐2.0+ IE 9 Opera 11.50。 在这个jsfiddle中自己尝试:http : //jsfiddle.net/uBReg/
我在Chrome(失败),IE 8(失败)和FireFox 5(根据Wiki表有效)上对此进行了测试。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。