ES6 Set集合操作 在输入框内输入两个整数序列,点击按钮输出序列的交集、差、并集

ES6 Set 学习

菜鸟教程:https://www.runoob.com/w3cnote/es6-map-set.html

实践

1. 题目
实现在输入框内输入两个整数序列,点击按钮输出序列的交集、差、并集。如,
输入:
1 2 3
4 3 2
输出:
并集: 1, 2, 3, 4
交集: 2, 3
差集: 1

2. 思考
界面:两个input输入框,一个提交按钮
逻辑:

  1. 输入框内输入的是字符串,可以使用split()方法,将字符串以空格分开,然后保存到一个Set集合里。
  2. 并集、交集、差集方法
    var union = new Set([…set1, …set2]);
    var intersect = new Set([…set1].filter(x => set2.has(x)));
    var difference = new Set([…set1].filter(x => !set2.has(x)));

3.实现

主要是获取到输入框中的数据,然后用split方法拆分,存入Set中,经过并集、交集和差集的操作后,将结果输出。
代码没有什么注释,因为比较容易看懂。

<!DOCTYPE html>
<html>

<head> 
  <meta charset="utf-8"> 
  <title>SET</title> 
</head>

<body>
  <script>
    function myFunction() {
      var s1 = document.getElementById("line1").value;
      var s2 = document.getElementById("line2").value;
      var sp1 = s1.split(' ');
      var sp2 = s2.split(' ');
      var set1 = new Set(sp1);
      var set2 = new Set(sp2);
      var union = new Set([...set1, ...set2]);
      var intersect = new Set([...set1].filter(x => set2.has(x)));
      var difference = new Set([...set1].filter(x => !set2.has(x)));
      var strUnion = "并集:";
      union.forEach(element => {
        strUnion += element + ' ';
      });
      var strIntersect = "交集:";
      intersect.forEach(element => {
        strIntersect += element + ' ';
      });
      var strDifference = "差集:";
      difference.forEach(element => {
        strDifference += element + ' ';
      });
      document.getElementById("union").innerHTML = strUnion;
      document.getElementById("intersect").innerHTML = strIntersect;
      document.getElementById("difference").innerHTML = strDifference;
    }
  </script>
  <div style="align-content: center;">
    <b>输入:</b><br />
    <input style="margin-top: 10px;" type="text" id="line1"><br />
    <input style="margin-top: 10px;" type="text" id="line2"><br />
    <input type="submit" onclick="myFunction()" value="计算"
      style="margin-top: 10px;margin-left: 60px;margin-bottom: 10px;"><br />
    <b>输出:</b><br />
    <a style="margin-top: 10px;" id="union"></a><br />
    <a style="margin-top: 10px;" id="intersect"></a><br />
    <a style="margin-top: 10px;" id="difference"></a><br />
  </div>
</body>

</html>

结果

结果

总结

对ES6语法有了初步的认识,对Set的集合操作能够实际应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值