zoukankan      html  css  js  c++  java
  • 分享几个数组方法

    去重:

    //数组去重
    function unique(arr) {
        for (var i = 0; i < arr.length; i++) {
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i] == arr[j]) {//第一个等同于第二个,splice方法删除第二个
                    arr.splice(j, 1);
                    j--;
                }
            }
        }
        return arr;
    }

    删除:

    /*删除数组中的某一个对象
    _arr:数组
    _obj:需删除的对象
    */
    function removeAaary(_arr, _obj) {
        var length = _arr.length;
        //深拷贝
       var arr = $.extend(true, [], _arr);
        for (var i = 0; i < length; i++) {
            if (arr[i].id == _obj.id && arr[i].perType == _obj.perType) {
                 _arr.splice(i, 1); //删除下标为i的元素
            }
        }
         return _arr;
    }

    数组 json 转 对象:

    //数组json  转 对象
    function arrayToObject(array, _key) {
        if (_key.indexOf("&") > -1) {
            _key = _key.split("&");
        }
        var obj = {};
        for (var i = 0; i < array.length; i++) {
    
            if (typeof _key == "object") {
                var k0 = array[i][_key[0]],
                    k1 = array[i][_key[1]];
                obj[k0 + '_' + k1] = array[i]; //替换  可用于去重
                // if(obj[array[i][k0 + '_' + k1]]){
                //     delete obj[array[i][k0 + '_' + k1]] //删除  可用于查找删除
                // }
            } else {
                obj[array[i][_key]] = array[i];
            }
        }
        return obj;
    }
    根据参数_key比较两组json, 从第一组中删除第二组:
    /*//根据参数_key比较两组json, 从第一组中删除第二组
    * @allData  母json
    * @hasData  子json
    * @_key     需比较的key属性名称, 最多可以写两个, 用'&'符号连接 (不填默认取"id")
    * */
    function diffDataJson(allData, hasData, _key) {
        _key = _key || "id";
        var obj1 = arrayToObject(allData, _key);
        var obj2 = arrayToObject(hasData, _key);
        console.log(obj1, obj2);
        for (var k in obj2) {
            if (obj1[k]) {
                delete obj1[k];
            }
        }
        console.log(obj1);
        return Object.values(obj1);
    }
     
  • 相关阅读:
    《杀死比尔 卷1》(Kill Bill: Volume 1)思路.未剪切全彩版.720re.DTS[HDTVRE]
    IronPython 1.0 Release Candidate 2
    Microsoft® Visual Studio® .NET™ 2003 Service Pack 1
    Vista Transformation Pack 5.0 发布
    捡到一小猫
    《魔比斯环》(Thru The Moebius Strip)[DVDScr]
    用户控件 分类列表导航栏
    MsChart<5> 累计柱状图 分类统计
    二进制流上传图片,预览,读取显示
    Ajax无刷新数据绑定
  • 原文地址:https://www.cnblogs.com/foxcharon/p/15165582.html
Copyright © 2011-2022 走看看