From bf1652e938c9c31cceb00a74ffefbdc7ece50169 Mon Sep 17 00:00:00 2001 From: nemo-shen Date: Sun, 14 Mar 2021 10:17:16 +0800 Subject: [PATCH] fix(Cascader): assignKey function deep clone Array (#8326) Co-authored-by: nemo-shen <1034131477@qq.com> --- src/utils/deep-clone.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/utils/deep-clone.ts b/src/utils/deep-clone.ts index 254b8e6b1..ecdb9fc85 100644 --- a/src/utils/deep-clone.ts +++ b/src/utils/deep-clone.ts @@ -1,12 +1,22 @@ -import { deepAssign } from './deep-assign'; +import { isDef } from './index'; +import { ObjectIndex } from './types'; + +export function deepClone(obj: ObjectIndex): object { + if (!isDef(obj)) { + return obj; + } -export function deepClone(obj: object): object { if (Array.isArray(obj)) { return obj.map((item) => deepClone(item)); } if (typeof obj === 'object') { - return deepAssign({}, obj); + const to = {} as ObjectIndex; + Object.keys(obj).forEach((key) => { + to[key] = deepClone(obj[key]); + }); + + return to; } return obj;