【问题标题】:swap() function for variables's values [duplicate]变量值的交换()函数
【发布时间】:2016-10-20 21:56:03
【问题描述】:

我无法在下面的交换函数中获得所需的结果,我希望将值打印为 3,2

function swap(x,y){
 var t = x;
 x = y;
 y = t;
}

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

任何线索将不胜感激!

【问题讨论】:

  • 它确实交换了你的变量,但仅此而已,它不返回任何内容,并且变量是函数的本地变量?
  • 没有return [x,y];
  • 为什么不直接交换变量而不使用函数?

标签: javascript function variables swap


【解决方案1】:

您的函数正在内部交换值,但该函数没有返回值。

以下方法以与提供的相反顺序返回一个值数组。

function swap(x, y) {
    var t = x;
    x = y;
    y = t;
    return [x, y];
}

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

但是,您可以轻松地执行以下 sn-p 之类的操作,因为 - 根据您提供的代码 - 似乎不需要实际交换参数的值。

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

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

【讨论】:

  • 介意解释一下为什么会这样吗?
  • 第一个 sn-p 还是第二个 sn-p? @AndrewLi
【解决方案2】:

如果您实际上不需要交换值:

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

如果您确实需要交换值,但又不想声明另一个变量:

function swap (x, y)
{
  x = x + y;
  y = x - y;
  x = x - y;
  return [x, y];
}

【讨论】:

  • 第二种算法不会交换字符串。此外,它来自 RAM 内存成为问题的时代。它不应该用于现代 JS 应用程序。
  • y = [x, x = y][0];一条线解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
相关资源
最近更新 更多