york-demo-ui
Version:
37 lines (36 loc) • 862 B
JavaScript
function typeOf (obj) {
const toString = Object.prototype.toString
const map = {
'[object Boolean]' : 'boolean',
'[object Number]' : 'number',
'[object String]' : 'string',
'[object Function]' : 'function',
'[object Array]' : 'array',
'[object Date]' : 'date',
'[object RegExp]' : 'regExp',
'[object Undefined]': 'undefined',
'[object Null]' : 'null',
'[object Object]' : 'object'
}
return map[toString.call(obj)]
}
function deepCopy (data) {
const t = typeOf(data)
let o
if (t === 'array') {
o = []
} else if ( t === 'object') {
o = {}
}
if (t === 'array') {
for (let i = 0; i < data.length; i++) {
o.push(deepCopy(data[i]))
}
} else if ( t === 'object') {
for (let i in data) {
o[i] = deepCopy(data[i])
}
}
return o
}
export { deepCopy }