gpt4 book ai didi

javascript - 为什么我不能在 JavaScript 中交换 2 个变量?

转载 作者:行者123 更新时间:2023-12-03 07:03:07 25 4
gpt4 key购买 nike

我试图在 JavaScript 中交换两个变量,但我的代码不起作用。谁能告诉我为什么?

我认为这应该返回 10、5,因为我已经调用了交换函数。但相反,它返回 5、10。

function swap(a, b) {
var temp = a;
a = b;
b = temp
}

var x = 5;
var y = 10;
swap(x, y);
console.log(x, y);

最佳答案

JavaScript 和 Java 一样,只能通过引用传递。这意味着虽然您的函数确实交换了值,但调用范围内 xy 的实际值并未交换。这里的一种解决方法可能是返回一个交换的值数组:

function swap(a, b) {
return [b, a];
}

var x = 5;
var y = 10;
[x, y] = swap(x, y);
console.log("x after swap = " + x);
console.log("y after swap = " + y);

注意这里的关键线是赋值:

[x, y] = swap(x, y);

这会将 xy 重新分配给一行中的交换数组。

关于javascript - 为什么我不能在 JavaScript 中交换 2 个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64409232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com