nly-adminlte-vue
Version:
nly adminlte3 components
18 lines (15 loc) • 471 B
JavaScript
import { isArray, isPlainObject } from "./inspect";
import { keys } from "./object";
export const cloneDeep = (obj, defaultValue = obj) => {
if (isArray(obj)) {
return obj.reduce((result, val) => [...result, cloneDeep(val, val)], []);
}
if (isPlainObject(obj)) {
return keys(obj).reduce(
(result, key) => ({ ...result, [key]: cloneDeep(obj[key], obj[key]) }),
{}
);
}
return defaultValue;
};
export default cloneDeep;