文档章节

用简单的算法实现过滤数据的功能—众学

弧线之内
 弧线之内
发布于 2015/08/25 09:49
字数 524
阅读 29
收藏 0

phone-->im-->sys_message.html

     在模板中执行对应的js,然后将过滤后的数据拿出来渲染:

  <%
        var dataObj = repeatMsg.showData(data);
        for (var key in dataObj) {
             %>

repeatMsg.showData(data)是主要的过滤方法。

var repeatMsg = (function(){
        var repeatObj = {};
        var dataMsg = [],dataMsgApp=[];
        repeatObj.showData = function(data){
            dataMsgApp=[];
            var len = dataMsg.length
            if(len==0 && data.length>0){
                repeatObj.setDataMsg(data);
                return dataMsg;
            }else{
                repeatObj.setDataMsg(data);
                return dataMsgApp;
            }
        };
        repeatObj.setDataMsg = function(data){
            for(var i = 0; i< data.length;i++){
                if(dataMsg.length == 0){
                    dataMsg.push(data[i]);
                }else{
                    var temp = true;
                    for(var j = 0; j< dataMsg.length;j++){
                        var dataMsgkey = repeatObj.getDataKey(dataMsg[j]);
                        var datakey = repeatObj.getDataKey(data[i]);
                        if(dataMsgkey == datakey){
                            temp = false;
                            break;
                        }
                    }
                    if(temp){
                        dataMsg.push(data[i]);
                        dataMsgApp.push(data[i]);
                    }
                }
            }
        };
        repeatObj.getDataKey = function(data){
            var type = data.extra.type;
            if(type == 'ms-0002' || type == "ms-0003"){
                var ms_extra_info = data.extra.ms_extra_info;
                return ms_extra_info.im_group_id+"_"+ms_extra_info.user_code;
            }  
            if(type == 'ms-0001'){
                return data.extra.ms_extra_info.user_code;
            }
            if(type == 'ms-0006'){
                return data.extra.group_id;
            }
            return "";
        };
        return repeatObj;
    })();

  以上代码的结构为var k = (function(){})(); 内部function的地位和k等价,所以在页面未关闭的情况下,function内部的变量的数据不会被初始化。

  geiDataKey()方法返回的值为每个类型的唯一ID(与主键不同,因为每生成一条系统消息就会产生一个新的主键,但是内容却很可能是相同的。)

  setDataMsg()方法是过滤的核心,它进行两层循环,第一层为基数,第二层的数据为过滤后的部分数据;然后将第一层的数据与第二层的数据进行对比,如果发现重复就跳出循环,并且不向dataMsg中添加数据,如果发现没有重复就向dataMsg中添加数据。

  showData()方法是返回过滤后的数据,dataMsgApp是在页面未关闭的情况下渲染新加入的验证消息;dataMsgApp在方法执行的时候会被初始化,所以只会有当前发送过来的新的一条验证消息。然后将此验证消息与之前dataMsg中的所有验证消息用同样的方法进行对比。

© 著作权归作者所有

弧线之内

弧线之内

粉丝 3
博文 20
码字总数 18278
作品 0
厦门
程序员
私信 提问
推荐系统初探:ItemCF算法实现知乎问题推荐

推荐系统是一种在电商、广告、内容等互联网平台发挥着巨大商业价值的数据挖掘产品形态,它可以提高用户黏性、提高用户商业转化行为,一款好的推荐系统可以明显有效提升平台的经济效益。通俗地...

真依然很拉风
2017/12/02
0
0
【java8】java新特性(二)——lambda表达式

一,前言 在上一篇博客中,小编向大家抛转引玉,简单说明了[ Java8 ](http://blog.csdn.net/kisscatforever/article/details/79572194 ),其实Java 8在2014年3月18日,就发布了。可以说程序...

kisscatforever
2018/03/20
0
0
转型AI产品经理,原来不需要学那么深的算法和数学模型

作者:李杰克 全文共 5702 字 26 图,阅读需要 13 分钟 ———— / BEGIN / ———— Hello,World! 这是我的第一篇文章,如果你还没系统地学习过AI算法相关知识,它应该能够让你对AI有些新...

k7jz78gejj
2017/12/07
0
0
LG 利用 AI 减少 VR 画面延迟问题;IBM 发布"AI+区块链" 应用即将用于钻石供应链丨AI 掘金晚报

IBM发布"AI+区块链" 应用即将运用于钻石供应链 雷锋网消息,近日,IBM研究院发布了一款名为“Crypto Anchor Verifier”(Crypto锚定验证器)的新技术产品。 对于该项新产品的未来发展,IBM研...

张栋
2018/05/30
0
0
推荐系统从零到一

推荐系统从零到一 可以说是全拜谷歌吹起了「大数据」这阵春风,近几年业界对于数据挖掘人才的需求持续高涨,而推荐系统一直是数据挖掘岗位的必修课。一联系到数据挖掘,总会给人高深莫测的错...

ershou
2016/01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
10
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部