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中的事件驱动
May 21 Javascript
JavaScript中双叹号!!作用示例介绍
Sep 21 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
js生成随机数的过程解析
Nov 24 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
javascript 中select框触发事件过程的分析
Aug 01 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
May 18 Javascript
Echart折线图手柄触发事件示例详解
Dec 16 Javascript
js实现数字跳动到指定数字
Aug 25 Javascript
js Proxy的原理详解
May 25 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP实现简易图形计算器
2020/08/28 PHP
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
js a标签点击事件
2017/03/30 Javascript
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
jQuery实现本地存储
2020/12/22 jQuery
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
django用户登录和注销的实现方法
2018/07/16 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
大学生求职自我评价
2014/01/16 职场文书
酒店营销策划方案
2014/02/07 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
详解Python类和对象内容
2021/06/22 Python
sass 常用备忘案例详解
2021/09/15 HTML / CSS