提问人:Ly丶Cooki 提问时间:2/12/2023 更新时间:2/13/2023 访问量:74
为什么数组解构可以交换两个变量而没有 temperory 变量
why Array Destructuring can swap two variables without temperory variable
问:
我不明白它在幕后是如何工作的,为什么这种方式可以在不使用临时变量来交换两个变量的值的情况下。
let arr = [1,2];
let [first,second] = arr;
[first,second] = [second,first]
console.log(first,second); //2,1
答:
1赞
Bergi
2/13/2023
#1
在重新分配之前,它确实会从两个交换的变量创建一个临时值:数组。此值是匿名的,它没有变量名称,但您可以轻松地引入一个:
const _temp = [second,first];
[first,second] = _temp;
评论
0赞
Ly丶Cooki
2/14/2023
所以很有可能
0赞
Ly丶Cooki
2/14/2023
所以我可以认为它使用这种工作方式。arr=[1,2] [first,second] = arr.now 第一个和第二个变量存储了 1 和 2。[first,second] = [second,first] 我可以将这段代码理解为 [first, second] = [2,1] ;
0赞
Bergi
2/14/2023
@Ly丶Cooki 是的,没错。它首先从变量保存的值构建数组,然后将它们分配回变量。[2, 1]
评论
[second,first]
[arr[0], arr[1]] = [arr[1], arr[0]];