请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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去存值可以直接这么写啊?
谢谢老师解答。

正在回答 回答被采纳积分+3

1回答

慕粉1926294646 2020-06-12 22:59:10

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

0 回复 有任何疑惑可以回复我~
  • 提问者 李小圆_ #1
    对不起老师我还是不是很懂,这里不是给属性赋值吗,比如obj.a=3这样。
    回复 有任何疑惑可以回复我~ 2020-06-14 20:25:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信