Skip to content

Commit 88c28f5

Browse files
yugasunPanJiaChen
authored andcommitted
perf: change in operation to Object.keys (PanJiaChen#518)
1 parent 26b8484 commit 88c28f5

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

src/utils/index.js

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,14 @@ export function objectMerge(target, source) {
131131
if (Array.isArray(source)) {
132132
return source.slice()
133133
}
134-
for (const property in source) {
135-
if (source.hasOwnProperty(property)) {
136-
const sourceProperty = source[property]
137-
if (typeof sourceProperty === 'object') {
138-
target[property] = objectMerge(target[property], sourceProperty)
139-
continue
140-
}
134+
Object.keys(source).forEach((property) => {
135+
const sourceProperty = source[property]
136+
if (typeof sourceProperty === 'object') {
137+
target[property] = objectMerge(target[property], sourceProperty)
138+
} else {
141139
target[property] = sourceProperty
142140
}
143-
}
141+
})
144142
return target
145143
}
146144

@@ -253,15 +251,13 @@ export function deepClone(source) {
253251
throw new Error('error arguments', 'shallowClone')
254252
}
255253
const targetObj = source.constructor === Array ? [] : {}
256-
for (const keys in source) {
257-
if (source.hasOwnProperty(keys)) {
258-
if (source[keys] && typeof source[keys] === 'object') {
259-
targetObj[keys] = source[keys].constructor === Array ? [] : {}
260-
targetObj[keys] = deepClone(source[keys])
261-
} else {
262-
targetObj[keys] = source[keys]
263-
}
254+
Object.keys(source).forEach((keys) => {
255+
if (source[keys] && typeof source[keys] === 'object') {
256+
targetObj[keys] = source[keys].constructor === Array ? [] : {}
257+
targetObj[keys] = deepClone(source[keys])
258+
} else {
259+
targetObj[keys] = source[keys]
264260
}
265-
}
261+
})
266262
return targetObj
267263
}

0 commit comments

Comments
 (0)