zoukankan      html  css  js  c++  java
  • javascript数组去重

    数组去重处理函数:

            function uniqueArray(a) {
                var temp = new Array();
                for (var i = 0; i < a.length; i++) {
                    if (!contains(temp, a[i])) {
                        temp.length += 1;
                        temp[temp.length - 1] = a[i];
                    }
                }
                return temp;
            }
            function contains(a, e) {
                for (j = 0; j < a.length; j++) if (a[j] == e) return true;
                return false;
            }
    

    使用例子:

    /**
    * @create: nelson
    * @Eliminate duplicate items from qListview
    * @eliminateDuplicate 
    * @调用方式    
      $("#container").eliminateDuplicateVal(qListview);         
    */
    $.fn.extend({
        eliminateDuplicateVal: function (qListview) {
            var This = $(this);
            var That = This.find(qListview);
            var _resultPanel = This.find("> .itemp_check_no strong");
            var _loading = This.find("> .loading");
            function init() {
                var html = "";
                var strFilterArr = new Array();
                var _select = This.find("> .item_check_field");
                That.find(">thead .rgHeader").each(function () {//拼select的option html字符串
                    var str = $(this).text().trim();
                    html += '<option>' + str + '</option>';
                    strFilterArr.push(str);
                });
                if (html != "") {
                    html = '<option></option>' + html;
                    _select.html(html);
                    if (That.find(">tbody .rgNoRecords").length != 1) {
                        _resultPanel.html(That.find(">tbody>tr").length);//初始化记录数
                        This.find("> .item_check_btn").click(function () {
                            _loading.css("display", "inline-block");//显示loading gif动画图片
                            setTimeout(function () {
                                var strFilter = _select.children("option:selected").text();
                                if (strFilter != "") {
                                    var key = strFilterArr.indexOf(strFilter);
                                    var strResultArr = new Array();
                                    That.find(">tbody>tr").each(function () {
                                        $(this).css("display", "none");//全部行隐藏
                                        strResultArr.push($(this).find("td:eq(" + key + ")").text().trim());//建结果数组
                                    });
                                    strResultArr = uniqueArray(strResultArr);//去重
                                    $.each(strResultArr, function (k, strValue) {
                                        That.find(">tbody>tr").each(function () {
                                            //显示过滤后的内容行
                                            var self = $(this);
                                            if (self.find("td:eq(" + key + ")").text().trim() == strValue) {
                                                self.css("display", "table-row");
                                                return false;
                                            }
                                        });
                                    });
                                    _resultPanel.html(strResultArr.length);
                                }
                                //setTimeout(function () {
                                _loading.css("display", "none");
                            }, 1000);
                            return false;
                        });
                    }
                    else {
                        This.find("> .item_check_btn").click(function () {
                            alert("请先在下方进行搜索再执行本操作!");
                            return false;
                        });
                    }
                }
    
            }
            function uniqueArray(a) {
                var temp = new Array();
                for (var i = 0; i < a.length; i++) {
                    if (!contains(temp, a[i])) {
                        temp.length += 1;
                        temp[temp.length - 1] = a[i];
                    }
                }
                return temp;
            }
            function contains(a, e) {
                for (j = 0; j < a.length; j++) if (a[j] == e) return true;
                return false;
            }
            init();
        }
    });
  • 相关阅读:
    Uncaught TypeError: Illegal invocation
    数组循环
    二维码
    验证码
    user_agent
    ip
    jquery操作dom
    php 正则
    hdu 4850 Wow! Such String! 欧拉回路
    leetcode Maximal Rectangle 单调栈
  • 原文地址:https://www.cnblogs.com/fastmover/p/4329433.html
Copyright © 2011-2022 走看看