zoukankan      html  css  js  c++  java
  • 不借助临时变量对两个整数进行交换

    方法一:利用ES6中数组解构赋值语法

    <script>
            var a = 1,b = 2;
            [a,b] = [b,a];
            console.log(a + " " + b);
    </script>

    方法二:利用运算符优先级

    <script>
            var a = 1,b = 2;
            b = [a,a=b][0]; // 根据运算符优先级,首先执行 a=b,所以a得到了b的值,之后通过数组索引使b得到a的值
            console.log(a + " " + b); 
    </script>

    方法三:使用“和”形式

    <script>
            var a = 1,b = 2;
            a = a + b; // 此时a为两数之和
            b = a - b; // 两数之和减b为a,此时b为a
            a = a - b; // 两数之和减b,相当于减a,此时a为b
            console.log(a + " " + b);
    </script>

    方法四:使用位操作

    <script>
            var a = 1,b = 2;
            a ^= b; // a先存a和b两者的信息
            b ^= a; // a不变,利用b异或反转b的原始值使其等于a的原始值
            a ^= b; // b不变,利用a异或反转a的原始值使其等于b的原始值
            console.log(a + " " + b);
    </script>

    方法五:使用数组

    <script>
            var a = 1,b = 2;
            a = [a,b];
            b = a[0];
         a = a[1]; // 要先给b赋值,不然a就不再是数组了
    console.log(a + " " + b);
    </script>

    方法六:使用对象

    <script>
            var a = 1,b = 2;
            a = {
                a:b,
                b:a
            }
            b = a.b;
            a = a.a; // 同样要先操作b,如果先对a操作,a就不是对象了,b就取不到正确的值了
            console.log(a + " " + b);
    </script>
  • 相关阅读:
    OnClick方法与Click事件
    词法,语法,语义
    静态成员与实例成员
    依赖属性 DependencyProperty
    依赖,关联,聚合,合成
    数据可视化
    ref 与out
    理解TCP为什么需要进行三次握手(白话)
    禁止访问网站中所有的动态页面
    linux 重命名文件和文件夹
  • 原文地址:https://www.cnblogs.com/kunmomo/p/9935544.html
Copyright © 2011-2022 走看看