js 数据深度克隆

深度克隆(方法1)

缺点:函数,Regexp等特殊函数无法转换

let newObj = JSON.parse(JSON.stringify(oldObj));

深度克隆(方法2)

说明:递归克隆

function cloneData(data){
    if(!(data && data instanceof Object)) return {};
    let arr = data instanceof Array ? [] : {};
    for (const key in data) {
        if (data.hasOwnProperty(key)) {
            let item = data[key];
            if(item instanceof Object){
                arr[key] = cloneData(item);
            }else{
                arr[key] = data[key];
            }
        }
    }
    return arr;
}

 

你可能感兴趣的:(面试题,js,深度克隆)