You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写的JavaScript x、y值交换函数失效,请求技术排查帮助

你的JavaScript交换函数问题分析与修复

你写的这段交换函数没法正常工作,核心问题是变量覆盖导致原x值丢失:
当执行x = y时,x已经被替换成y的值(也就是3),这时候原来的x值(2)已经没了;接着执行y = x,其实是把已经变成3的x赋值给y,最后x和y都是3,自然没法完成交换。

给你两种简单的修复方案:

方案一:用临时变量保存原x值

这是最基础的交换逻辑,先把x的初始值存起来,避免被覆盖:

function swap(x, y) {
  const temp = x; // 保存原x的值
  x = y;
  y = temp;
  return [x, y];
}
console.log(swap(2, 3)); // 输出 [3, 2]

方案二:用ES6解构赋值(更简洁)

利用数组解构可以一步完成交换,不用临时变量:

// 直接返回交换后的数组
function swap(x, y) {
  return [y, x];
}

// 或者在函数内部完成交换再返回
function swap(x, y) {
  [x, y] = [y, x];
  return [x, y];
}
console.log(swap(2, 3)); // 输出 [3, 2]

内容的提问来源于stack exchange,提问作者Daniel Lagnaux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:27:36