老师,请教一个关于解构赋值的问题

来源:2-36 Desctructuring

李小圆_

2020-06-05

在一个翻转二叉树的题里,我看到有人这么写

function invertTree(root) {
    if (root) {
        [root.left, root.right] = [invertTree(root.right), invertTree(root.left)];
    }
    return root;
}

但是我这么写就会报错

let obj = {
  a: 1,
  b: 2
}
[obj.a, obj.b] = [obj.b, obj.a]
console.log(obj)

请问这个赋值过程到底是怎么进行的,为什么上面翻转二叉树那里不需要一个temp去存值可以直接这么写啊?
谢谢老师解答。

写回答

1回答

慕粉1926294646

2020-06-12

同学你对数组的解构赋值没理解,你的写法等同于 [1,2]=[2,1] 肯定有问题,1,2不是变量

0
1
李小圆_
对不起老师我还是不是很懂,这里不是给属性赋值吗,比如obj.a=3这样。
2020-06-14
共1条回复

再学JavaScript ES(6-10)全版本语法大全

前端无门槛学习,从ES6到ES10,一套课程掌握JS最新语法

1182 学习 · 336 问题

查看课程