当前位置:  开发笔记 > 编程语言 > 正文

可以从数组中分配多个变量吗?

如何解决《可以从数组中分配多个变量吗?》经验,为你挑选了2个好方法。

它是从JavaScript中的数组分配多个变量的标准方法吗?在Firefox和Opera中,您可以:

var [key, value] = "key:value".split(":");
alert(key + "=" + value); // will alert "key = value";

但它在IE8或谷歌浏览器中不起作用.

有没有人知道在没有tmp变量的其他浏览器中这样做的好方法?

var tmp = "key:value".split(":");
var key=tmp[0], value=tmp[1];

这是即将出现的JavaScript版本,还是FF和Opera中的自定义实现?



1> gregers..:

解构分配在ECMAScript 2015(又名ES6)中标准化.但并非所有浏览器都已实现解构(截至2016年3月),即使他们这样做,也需要一段时间才能将用户更新到支持的浏览器.请参阅规范中的示例,了解您可以执行的所有令人敬畏的事情.这里有一些:

// Assign from array elements
var [key, value] = "key:value".split(":");
// key => 'key'
// value => 'value'

// Assign from object properties
var {name: a, age: b} = {name: 'Peter', age: 5};
// a => 'Peter'
// b => 5

// Swap
[a, b] = [b, a]
// a => 5
// b => 'Peter'

由于此功能会破坏向后兼容性,因此您需要转换代码以使其在所有浏览器中都能正常运行.许多现有的转发器支持解构.Babel是一个非常受欢迎的转发器.请参阅Kangax的浏览器和转换器ES6支持表.

更多信息:

ES6浏览器支持的兼容性表

探索ES6 - 解构章节



2> Nosredna..:

如果您想知道将要发生什么,请阅读"解构分配"一节.

https://developer.mozilla.org/en/New_in_javascript_1.7

您可以使用的语言功能始终取决于您的环境.

例如,开发移动Safari(或其他浏览器的Web堆栈,如Palm Pre,Android等)或AIR比开发网络更为可预测(您甚至还需要考虑IE6) .


针对问题的跨浏览器解决方案是初始化一个数组,该数组包含要填充window.variable格式的变量列表,然后循环执行.无法想象为什么你会这样做.似乎总会有更好的解决方案.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有