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

不使用条件语句实现传入x返回y、传入y返回x的JS函数

var x = 10;
var y = 20;

以下是几种无需条件语句的实现方案:

  • 算术运算法(仅适用于数字类型)
    利用两数之和减去输入值得到另一个值,逻辑最简单:

    function swap(num) {
      return x + y - num;
    }
    

    验证:传入10返回30-10=20,传入20返回30-20=10,完全符合要求。

  • 异或运算法(仅适用于整数类型)
    利用异或运算的特性实现:

    function swap(num) {
      return num ^ x ^ y;
    }
    

    原理:a ^ a = 0、a ^ 0 = a,传入x时运算结果为x ^ x ^ y = y,传入y时运算结果为y ^ x ^ y = x。

  • 对象映射法(通用性最强,支持所有可作为对象键的基础类型)
    直接构建反向映射的对象取值:

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

    原理:提前把x对应y、y对应x的映射关系写到对象里,传入参数直接作为键读取对应值即可,没有任何条件判断逻辑。

  • 数组索引法
    利用布尔值转数字的特性做索引取值:

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

    原理:布尔值转数字时true为1、false为0,传入y时取索引1的值x,传入x时取索引0的值y。

内容的提问来源于stack exchange,提问作者kamran rafi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:24:04