封装方法——深拷贝数组&深拷贝对象

封装方法——深拷贝数组&深拷贝对象

1、封装的方法

src/utils/clone.ts

/**
 * 深拷贝数组
 * @param arr
 */
const deepArray = (arr: Array<any>) => {
    return arr.map(deepClone);
};

/**
 * 深拷贝对象
 * @param object
 */
const deepObject = (object: Object) => {
    const keys = Object.keys(object);
    const result = {};
    keys.forEach(item => {
        result[item] = deepClone(object[item]);
    });

    return result;
};

/**
 * 深拷贝
 * @param data
 */
const deepClone = (data: any) => {
    if (!data) { return data }
    if (typeof data !== 'object') {
        return data;
    }
    if (Array.isArray(data)) {
        return deepArray(data);
    }
    return deepObject(data);
};
export default deepClone;
2、页面中使用

index.vue


你可能感兴趣的:(js知识,vue.js,前端,javascript)