如何在jQuery中创建交换功能

时间:2019-02-25 21:11:18

标签: javascript jquery

我基本上想使用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);

2 个答案:

答案 0 :(得分:1)

您不需要在函数中进行任何加法或减法;您只需返回y,然后再返回x。但是,请注意,您不能一次从一个函数返回两个值-如果要同时返回两个值,则需要将其作为数组返回(可以选择将其转换为字符串)。

function swap(x, y) {
  return [y, x].toString();
}

console.log(swap(1, 2));

答案 1 :(得分:1)

您的代码中有一些错误。您似乎不熟悉Javascript中的数据结构和变量/函数的工作方式。我强烈建议您先了解它们。

您的swap函数接受2个参数xy并对其进行一些数学运算,这些运算将交换值。在这里,您假设变量将始终是数字或某种类型的变量,在这种情况下加法和减法才有意义。除非您可以确保变量始终是数字,否则这是错误的方法。

同样,您的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);