This commit is contained in:
nightwing 2015-04-09 14:09:03 +04:00
commit 510d060cb2

View file

@ -81,32 +81,25 @@ exports.copyArray = function(array){
return copy; return copy;
}; };
exports.deepCopy = function (obj) { exports.deepCopy = function deepCopy(obj) {
if (typeof obj !== "object" || !obj) if (typeof obj !== "object" || !obj)
return obj; return obj;
var copy;
if (Array.isArray(obj)) {
copy = [];
for (var key = 0; key < obj.length; key++) {
copy[key] = deepCopy(obj[key]);
}
return copy;
}
var cons = obj.constructor; var cons = obj.constructor;
if (cons === RegExp) if (cons === RegExp)
return obj; return obj;
var copy = cons(); copy = cons();
if (Array.isArray(obj)) { for (var key in obj) {
for (var key = 0; key < obj.length; key++) { copy[key] = deepCopy(obj[key]);
if (typeof obj[key] === "object") {
copy[key] = exports.deepCopy(obj[key]);
} else {
copy[key] = obj[key];
}
}
} else {
for (var key in obj) {
if (typeof obj[key] === "object") {
copy[key] = exports.deepCopy(obj[key]);
} else {
copy[key] = obj[key];
}
}
} }
return copy; return copy;
}; };