JS实现的集合去重,交集,并集,差集功能示例


Posted in Javascript onMarch 13, 2018

本文实例讲述了JS实现的集合去重,交集,并集,差集功能。分享给大家供大家参考,具体如下:

1. js 实现数组的集合运算

为了方便测试我们这里使用nodejs,代码如set_operation.js

function array_remove_repeat(a) { // 去重
  var r = [];
  for(var i = 0; i < a.length; i ++) {
    var flag = true;
    var temp = a[i];
    for(var j = 0; j < r.length; j ++) {
      if(temp === r[j]) {
        flag = false;
        break;
      }
    }
    if(flag) {
      r.push(temp);
    }
  }
  return r;
}
function array_intersection(a, b) { // 交集
  var result = [];
  for(var i = 0; i < b.length; i ++) {
    var temp = b[i];
    for(var j = 0; j < a.length; j ++) {
      if(temp === a[j]) {
        result.push(temp);
        break;
      }
    }
  }
  return array_remove_repeat(result);
}
function array_union(a, b) { // 并集
  return array_remove_repeat(a.concat(b));
}
function array_difference(a, b) { // 差集 a - b
  //clone = a
  var clone = a.slice(0);
  for(var i = 0; i < b.length; i ++) {
    var temp = b[i];
    for(var j = 0; j < clone.length; j ++) {
      if(temp === clone[j]) {
        //remove clone[j]
        clone.splice(j,1);
      }
    }
  }
  return array_remove_repeat(clone);
}
a = [1,2,3,4,5];
b = [3,4,5,6,7];
c = array_intersection(a, b);
d = array_union(a, b);
e = array_difference(a, b);
f = array_difference(b, a);
console.log("test array a:", a, " b:", b);
console.log("a & b :", c);
console.log("a + b :", d);
console.log("a - b:", e);
console.log("b - a:", f);

2. 测试

我们这里使用nodejs来测试

测试结果:

stephen@stephen:~/openstack/demo/nodejs$ node set_operation.js
test array a: [ 1, 2, 3, 4, 5 ]  b: [ 3, 4, 5, 6, 7 ]
a & b : [ 3, 4, 5 ]
a + b : [ 1, 2, 3, 4, 5, 6, 7 ]
a - b: [ 1, 2 ]
b - a: [ 6, 7 ]

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 锁定弹出层实现代码
Feb 23 Javascript
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
document.documentElement的一些使用技巧
Apr 18 Javascript
jquery.post用法之type设置问题
Feb 24 Javascript
js实现touch移动触屏滑动事件
Apr 17 Javascript
使用jQuery调用XML实现无刷新即时聊天
Aug 07 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
Dec 22 Javascript
解决vue一个页面中复用同一个echarts组件的问题
Jul 19 Javascript
图解JS原型和原型链实现原理
Sep 15 Javascript
setTimeout时间设置为0详细解析
Mar 13 #Javascript
vue-cli脚手架config目录下index.js配置文件的方法
Mar 13 #Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 #Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 #Javascript
解决vue-cli创建项目的loader问题
Mar 13 #Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 #Javascript
基于vue.js实现的分页
Mar 13 #Javascript
You might like
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
使用python绘制二维图形示例
2019/11/22 Python
opencv python图像梯度实例详解
2020/02/04 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
美容院考勤制度
2014/01/30 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
煤矿安全生产标语
2014/06/06 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
2014年教研室工作总结
2014/12/06 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS