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 相关文章推荐
理解Javascript_08_函数对象
Oct 15 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
JS如何判断移动端访问设备并解析对应CSS
Nov 27 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
Jan 24 Javascript
js中settimeout方法加参数的使用实例
Feb 27 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
JS组件Bootstrap Select2使用方法解析
May 30 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
vue中Axios的封装与API接口的管理详解
Aug 09 Javascript
JavaScript遍历数组的方法代码实例
Jan 14 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初学入门
2006/11/19 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
python分析apache访问日志脚本分享
2015/02/26 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python xlsxwriter模块的使用
2020/12/24 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
高中自我鉴定
2013/12/20 职场文书
销售工作岗位职责
2013/12/24 职场文书
区三好学生主要事迹
2014/01/30 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
卡特教练观后感
2015/06/08 职场文书
基于Python实现股票收益率分析
2022/04/02 Python
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android