let {ids,team} = data ,这语法到底对不对?

我在vue里面见别人这么写

这是后台返回的,他判断下code,
                if (code == 1) {
                    let {
                        goods_image,
                        content,
                        comment,
                        like,
                        activity
                    } = data;
                    let {
                        info,
                        team,
                        team_found
                    } = activity; //秒杀时间
                 }

然后,let {xx,oo,...} = data , 看着是写反了的意思,正常应该是 let data = {xx,oo,...},我看他这个也不报错,正常运行。

然后,我在浏览器console里面试试,这写法,我一写就是错误的。

image

这是为啥呢?

阅读 2.5k
3 个回答

这是es6的赋值赋值。特别当data是复杂的二维数据类型,使用解构赋值更方便。
下面是解构赋值的用法:
比如:var arr = [1,2,3,4]
使用解构赋值 var arr2 = ...arr
那么arr2 就是 1,2,3,4 。
一般这样做 let arr2 = [...arr, 5]
那么 arr2 = [1,2,3,4,5]
解构赋值用于数组或者对象之间的转换。
后台返回的数据一般为JSON。使用解构赋值,更方便。
例如:data = {
ids: ['20011','20012','20013','20014'],
team: ['football','basekball','pinpang','swiming']
}
这样就可以使用解构赋值
let {ids,team} = data
这样赋值之后,
ids = ['20011','20012','20013','20014']
team = ['football','basekball','pinpang','swiming']
相当于将二维码数组对象转换成普通的一维数组,遍历很方便。

ES6的解构赋值。你的报错第一个是语法错误,第二个是data没有定义。

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题