js 数组去重&深克隆

2020-10-22  本文已影响0人  Peter_2B
    //去重方式1
    let tempArr = Array.from(new Set(cc));   //Array.from()将类数组转成真正的数组

    // 去重方式2
    unique(arr){
        var result = []
        for(var i of arr){
            if(!result.includes(i.id)){
                result.push(i.id);  
            }
        }
        return result;
    },
    //深度克隆 方式1:
    var newObj = JSON.parse(JSON.stringify(originObj)  );
    方式1弊端: 对象的键值是 函数\new Data()\new Object()等等无法使用
    我一般都是处理后端给的JSON数据,在知道对象内没有函数使用方式1是最快捷的

    // 深度克隆 方式2
    deepClone(obj){
       var newObj;
       if(typeof obj ==='object'){

            if(obj === null){
                    newObj = null;
            }else{

                    if(obj instanceof Array){
                        newObj = [];
                        for(var i = 0; i < obj.length; i++){
                            newObj.push( this.deepClone(obj[i]) );
                        }
                    }else{
                        newObj = {};
                        for(var j in obj){
                            newObj[j] = this.deepClone(obj[j])
                        }
                    }
            }
       }else{
           newObj = obj;
       }
       return newObj;
    },
上一篇 下一篇

猜你喜欢

热点阅读