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 相关文章推荐
JS文本框不能输入空格验证方法
Mar 19 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
Jun 22 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
jQuery使用之设置元素样式用法实例
Jan 19 Javascript
jQuery实现简单的间隔向上滚动效果
Mar 09 Javascript
javascript实现链接单选效果的方法
May 13 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
通过实例了解JS 连续赋值
Sep 24 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
vue视频播放暂停代码
2019/11/08 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
财务会计专业推荐信
2013/11/30 职场文书
初三学生评语大全
2014/04/24 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python