开发者社区> 问答> 正文

Javascript。将数组值分配给多个变量?

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

展开
收起
保持可爱mmm 2020-02-08 14:32:11 519 0
1 条回答
写回答
取消 提交回答
  • 这是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表有效)上对此进行了测试。

    2020-02-08 14:32:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载