From 88c28f5d7e23d310d9e6a00b1a40bdad7960787f Mon Sep 17 00:00:00 2001 From: Yuga Sun Date: Tue, 20 Mar 2018 17:27:42 +0800 Subject: [PATCH] perf: change in operation to Object.keys (#518) --- src/utils/index.js | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/utils/index.js b/src/utils/index.js index 2140fdff..285cd19a 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -131,16 +131,14 @@ export function objectMerge(target, source) { if (Array.isArray(source)) { return source.slice() } - for (const property in source) { - if (source.hasOwnProperty(property)) { - const sourceProperty = source[property] - if (typeof sourceProperty === 'object') { - target[property] = objectMerge(target[property], sourceProperty) - continue - } + Object.keys(source).forEach((property) => { + const sourceProperty = source[property] + if (typeof sourceProperty === 'object') { + target[property] = objectMerge(target[property], sourceProperty) + } else { target[property] = sourceProperty } - } + }) return target } @@ -253,15 +251,13 @@ export function deepClone(source) { throw new Error('error arguments', 'shallowClone') } const targetObj = source.constructor === Array ? [] : {} - for (const keys in source) { - if (source.hasOwnProperty(keys)) { - if (source[keys] && typeof source[keys] === 'object') { - targetObj[keys] = source[keys].constructor === Array ? [] : {} - targetObj[keys] = deepClone(source[keys]) - } else { - targetObj[keys] = source[keys] - } + Object.keys(source).forEach((keys) => { + if (source[keys] && typeof source[keys] === 'object') { + targetObj[keys] = source[keys].constructor === Array ? [] : {} + targetObj[keys] = deepClone(source[keys]) + } else { + targetObj[keys] = source[keys] } - } + }) return targetObj }