前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数组解构赋值

数组解构赋值

作者头像
阿超
发布2022-08-17 21:29:41
1.4K0
发布2022-08-17 21:29:41
举报
文章被收录于专栏:快乐阿超

倘若A代表人生的成功,那么公式是:A =X+Y+Z。X是工作,Y是游戏,z是保持缄默。——(美)爱因斯坦

我们以前从一个数组中获取第一项,可能是如下写法:

代码语言:javascript
复制
let list = [1,2,3]
let i = list[0]

有了解构赋值,可以如下写法:

代码语言:javascript
复制
let list = [1,2,3]
let [i] = list

如果稍微复杂点,例如下面这样从对象中取出来数组:

代码语言:javascript
复制
let ruben = {hobby:['anime']}
let favorite = ruben.hobby[0]

就可以写成:

代码语言:javascript
复制
let ruben = {hobby:['anime']}
let {hobby:[favorite]} = ruben

如果再复杂点

代码语言:javascript
复制
let ruben = {hobby:['anime']}
let achao = {favorite:undefined}
achao.favorite = ruben.hobby[0]

可以写成

代码语言:javascript
复制
let ruben = {hobby:['anime']}
let achao = {favorite:undefined}
[achao.favorite] = ruben.hobby

以及

代码语言:javascript
复制
let ruben = {hobby:['anime']};
let achao = {favorite:undefined};
({hobby:[achao.favorite]} = ruben);

关键在于,两边的结构要一致,而且不能使用{}作为代码开头,会被解析为代码块

我们最后来一个收尾

代码语言:javascript
复制
let ruben = {hobby:[{english:'ruben',chinese:'阿超',behavior:()=>'看动漫'}]};
let achao = {weekend:{todo:undefined},names:[]};
achao.weekend.todo = ruben.hobby[0].behavior;
achao.names = [ruben.hobby[0].english,ruben.hobby[0].chinese];

写成:

代码语言:javascript
复制
let ruben = {hobby:[{english:'ruben',chinese:'阿超',behavior:()=>'看动漫'}]};
let achao = {weekend:{todo:undefined},names:[]};
({hobby:[{english:achao.names[0],chinese:achao.names[1],behavior:achao.weekend.todo}]} = ruben);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档