【小黑JavaScript入门系列之脑力训练营一《六种方法实现JavaScript交换两个变量值》】

1.案例分析:请用javascript编程实现交换两个变量的值,根据用户输入的两个变量实现,数值交换

2.运行结果: 

  

3.方法实现:

方案一:变量置换法

方案分析:这里采取第三变量c作为一个容器,替换a和b的值,首先将a值传给c ,其次将b值传给a,最后把c值转给b,最终实现两个数的置换。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 方法一:变量置换法
        var a = prompt('请输入a的值');
        var b = prompt('请输入b的值');
        var c = 0;
        c = a;
        a = b;
        b = c;
        document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b);
    </script>
</body>

</html>

方案二:加减置换法 

 方案分析:这里利用加减法一个小算法,1.将a+b的值赋给a;2.将a-b的值赋给b;3.最后利用两数之和后的a减去存放了a的b,实现交换效果,值得注意的是,这里需要将用户输入的字符型,转换成数值型。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 方法二:加减置换法:值得注意的是这里要记得将字符转换为数值型
        var a = Number(prompt('请输入a的值'));
        var b = Number(prompt('请输入b的值'));
        a = a + b;
        b = a - b;
        a = a - b;
        document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b);
    </script>
</body>

</html>

方法三:异或置换法 

方案分析:这里采用二进制异或的方法交换数值。异或的特点:同数为0,异数为1;将用户输入的值分别转换成二进制,在进行异或,JS里面的异或符号是用shift+6,通过两次异或还是本身这个原理,即可实现两个数的交换。 

注意:其变换形式:a = (b^=a^=b)^a;【一行代码搞定两数置换

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 方法三:异或置换法(同数为0,异数为1)
        var a = prompt('请输入a的值');
        var b = prompt('请输入b的值');
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
        //a = (b ^= a ^= b) ^ a; //与上面三行实现同理只是变成一行代码
        document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b);
    </script>
</body>

</html>

方法四:数组特殊置换法【进阶】

 方案分析:这里使用的是特定数组的方法,将两个数直接转换,首先假设a=6,b=9则有a=[9,b=a][0]>>>a=[9,b=6][0]>>>a=[9,6][0]>>>b=6>>>a[0]=9>>>a=9。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 方法四:数组置换法
        var a = prompt('请输入a的值');
        var b = prompt('请输入b的值');
        a = [b, b = a][0]; 
        document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b);
    </script>
</body>

</html>

方法五:数组普通置换法 

 方案分析:这里使用的是普通数组置换的方法,首先将把a,b的值存放在a[a,b]这个数组中,其次先将a[0]值赋给b,再将a[1]的值赋给a,不这样会导致a与b的值相等。 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 方法五:数组普通置换法
        var a = prompt('请输入a的值');
        var b = prompt('请输入b的值');
        a = [a, b]; //接收用户输入的值
        document.write('交换前a,b的值是' + a + '<br>');
        b = a[0]; //将第一值赋给b必须写在a的前面
        a = a[1]; //将第二值赋给a
        document.write(a);
        document.write(b);
    </script>
</body>

</html>

方法六:ES6赋值法 

 方案分析:这里使用的是ES6置换的方法,由于ES6允许我们对数组和对象提取,所以可以进行变量赋值,来实现两数直接交换。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 方法六:ES6赋值法
        var a = prompt('请输入a的值');
        var b = prompt('请输入b的值');
        [a, b] = [b, a];
        document.write('交换后a的值是' + a + '<br>', '交换后b的值是' + b);
    </script>
</body>

</html>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的用 JavaScript 编写的小黑记事本,具有增删改查功能。由于没有指定具体的界面和数据存储方式,所以我将使用简单的控制台界面和数组来存储数据。 ```javascript let notes = []; // 存储笔记的数组 // 添加笔记 function addNote() { let note = prompt("请输入要添加的笔记:"); if (note) { notes.push(note); console.log("笔记添加成功!"); } } // 删除笔记 function deleteNote() { let index = prompt("请输入要删除的笔记编号:"); if (index && index >= 1 && index <= notes.length) { notes.splice(index - 1, 1); console.log("笔记删除成功!"); } else { console.log("输入有误,请重新输入!"); } } // 修改笔记 function editNote() { let index = prompt("请输入要修改的笔记编号:"); if (index && index >= 1 && index <= notes.length) { let note = prompt("请输入修改后的笔记:"); if (note) { notes[index - 1] = note; console.log("笔记修改成功!"); } } else { console.log("输入有误,请重新输入!"); } } // 查看笔记 function viewNote() { if (notes.length > 0) { console.log("所有笔记如下:"); for (let i = 0; i < notes.length; i++) { console.log(`${i + 1}. ${notes[i]}`); } } else { console.log("当前没有任何笔记!"); } } // 主程序 function main() { while (true) { let option = prompt(` 请选择要执行的操作: 1. 添加笔记 2. 删除笔记 3. 修改笔记 4. 查看笔记 5. 退出程序 `); switch (option) { case "1": addNote(); break; case "2": deleteNote(); break; case "3": editNote(); break; case "4": viewNote(); break; case "5": console.log("程序已退出!"); return; default: console.log("输入有误,请重新输入!"); break; } } } // 启动程序 main(); ``` 以上代码中,我们使用了一个数组来存储笔记,然后通过 `prompt` 函数来获取用户输入的内容。使用 `switch` 语句根据用户输入的选项执行相应的操作,例如添加笔记、删除笔记、修改笔记和查看笔记。最后,使用 `while` 循环来持续运行程序,直到用户选择退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值