我基本上想使用jquery或javascript中的一个函数交换2个变量的内容。而且我对任何方法都有偏见。(使用临时变量或不使用它不会有所作为) 我在javascript中尝试过
function swap(x,y){
x = x + y;
y = x - y;
x = x - y;
return x,y
}
var two = 1;
var one= 2;
swap (one,two);
document.write(one);
答案 0 :(得分:1)
您不需要在函数中进行任何加法或减法;您只需返回y
,然后再返回x
。但是,请注意,您不能一次从一个函数返回两个值-如果要同时返回两个值,则需要将其作为数组返回(可以选择将其转换为字符串)。
function swap(x, y) {
return [y, x].toString();
}
console.log(swap(1, 2));
答案 1 :(得分:1)
您的代码中有一些错误。您似乎不熟悉Javascript中的数据结构和变量/函数的工作方式。我强烈建议您先了解它们。
您的swap
函数接受2个参数x
和y
并对其进行一些数学运算,这些运算将交换值。在这里,您假设变量将始终是数字或某种类型的变量,在这种情况下加法和减法才有意义。除非您可以确保变量始终是数字,否则这是错误的方法。
同样,您的return语句为return x, y
。您不能从函数返回2个变量。函数的输出是单个值。在这种情况下,由于需要返回2个变量,因此应使用复合结构,如数组/对象。
此函数返回的值需要存储在适当的变量中,以便您可以使用它们。代码中的第10行会调用该方法,但不会将其返回值存储在任何地方。
针对您的用例的通用解决方案如下
// Create two variables
let x = 1, y = 2;
function swap(x, y) {
// Return the 2 variables in swapped order
return [y, x]
};
// Call the swap function and assign the return values back to the variables
[x, y] = swap(x, y);
// Print to console to verify
console.log(x, y);