博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组去重和两个数组求交集
阅读量:5095 次
发布时间:2019-06-13

本文共 955 字,大约阅读时间需要 3 分钟。

引言

       今天在项目中一个功能要用到两个数组求交集的算法。 大概是这样: 两个表格分别用easyui datagrid实现,要把A表格的一列数据和B表格的一列数据取出来,然后去重,去重后求交集。 那么在计算出的交集中分别根据求出的数据选中两个表格的对应行。 故用到js数组去重和求交集。

 

交集

Array.prototype.intersect = function(b) {  var flip = {};  var res = [];  for(var i=0; i< b.length; i++) flip[b[i]] = i;  for(i=0; i

 

去重

Array.prototype.Remove=function{ // 去重    var r = [];    for(var i = 0; i < this.length; i ++) {        var flag = true;        var temp = this[i];        for(var j = 0; j < r.length; j ++) {            if(temp === r[j]) {                flag = false;                break;            }        }        if(flag) {            r.push(temp);        }    }    return r;}

 

总结

      1、在使用的过程中去重和求交集几乎没什么大问题,另外一个细节问题就是我在提取datagrid的某列数据时,循环提取时,因为列内容是汉字,在循环时又必须给每列的数据加上单引号构成类似这种结构:['小明','小红','小李'] 。不知道有没有别的方法可以直接把某列数据(数据源是JSON对象)处理成数组。

      2、类似数组的去重和交集也是前端或者js面试的经典题目,我以前面试前端就遇到类似的问题。这里求交集只列了一种算法,在查找解决方法时至少发现4-5种写法,有时间都对比使用一下,再做个记录。

转载于:https://www.cnblogs.com/sword-successful/p/4111706.html

你可能感兴趣的文章
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Kotlin动态图
查看>>
从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
查看>>
Jsp抓取页面内容
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
可选参数的函数还可以这样设计!
查看>>
[你必须知道的.NET]第二十一回:认识全面的null
查看>>
Java语言概述
查看>>
关于BOM知识的整理
查看>>
android中自定义下拉框(转)
查看>>
Android设计模式源码解析之外观模式(Facade)
查看>>
使用word发布博客
查看>>
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>