深度克隆对象和数组,去除对象和数组value值两端的空格

//1.判断数据类型
function paramType(o){
    if(o===null) return "Null";
    if(o===undefined) return "Undefined";
    return Object.prototype.toString.call(o).slice(8,-1);
}
//2.深度克隆数组和对象
function deepClone(obj){
        var result={},oClass=paramType(obj);
        //确定result的类型
        if(oClass==="Object"){
            result={};
        }else if(oClass==="Array"){
            result=[];
        }else{
            return obj;
        }
        for(key in obj){
            var copy=obj[key];
            if(paramType(copy)=="Object"){
                result[key]=arguments.callee(copy);//递归调用
            }else if(paramType(copy)=="Array"){
                result[key]=arguments.callee(copy);
            }else{
                result[key]=obj[key];
            }
        }
        return result;
	}
var oldObj =  {
    a:['  rr ',{
        k:'  juio '
    }],
    b:'  789 ',
    c:{
        c:'  090 ',
        d:['  ppp ',{
            h:'   nnbnbn '
        }]
    }
}
var newObj = deepClone(oldObj);
oldObj.b = '';
console.log(newObj.b);//'  789 '

//3.去除数组或对象中字符串两端的空格
function paramTrim(param) {
    for (i in param) {
        if(paramType(param[i]) == 'Object'||paramType(param[i]) == 'Array') {
            paramTrim(param[i]);
        }else if(paramType(param[i]) == 'String'){
            param[i] = param[i].trim();
        }
    }
}
var a =[
    {a:' 123 ',b:' p op ',c:[' 23 ']},
    ' jjj  ',
    ['  ko ',{
        k:'  mk '
    }],
    '  nju '
]
paramTrim(a);
console.log(a);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值