var obj = {};
var objCount = 100;
for (let i = 0; i < objCount; i++) {
obj[i] = [1, 2, 3];
}
function deepClone(objIn) {
let copy;
if (objIn === null || typeof objIn !== 'object') {
return obj;
}
if (objIn instanceof Array) {
copy = [];
for (let i = 0, len = objIn.length; i < len; i++) {
copy[i] = deepClone(objIn[i]);
}
return copy;
}
if (objIn instanceof Object) {
copy = {};
for (const attr in objIn) {
if (objIn.hasOwnProperty(attr)) {
copy[attr] = deepClone(objIn[attr]);
}
}
return copy;
}
}
function deepMerge(target, ...sources) {
if (!sources.length) return target
const source = sources.shift()
if (isObject(target) && isObject(source)) {
for (const key in source) {
if (isObject(source[key])) {
if (!target[key]) Object.assign(target, {[key]: {}})
deepMerge(target[key], source[key])
} else {
Object.assign(target, {[key]: source[key]})
}
}
}
return deepMerge(target, ...sources)
}
function isObject(obj) {
return obj && typeof obj === "object" && !Array.isArray(obj)
}