Skip to content

Instantly share code, notes, and snippets.

@JasonCust
Last active August 29, 2015 14:00
Show Gist options
  • Save JasonCust/11261429 to your computer and use it in GitHub Desktop.
Save JasonCust/11261429 to your computer and use it in GitHub Desktop.
Collection of simple helper functions.
function clone(object) {
switch (getObjectType(object)){
case 'Object':
object = Object.keys(object).reduce(function(obj, key) {
obj[key] = clone(object[key]);
return obj;
}, {});
break;
case 'Array':
object = object.map(function (value) {
return clone(value);
});
break;
case 'Date':
object = new Date(object);
break;
case 'RegExp':
object = new RegExp(object);
break;
}
return object;
}
function getObjType(obj) {
return Object.prototype.toString.call(obj).slice(8,-1);
}
function merge() {
var objects = Array.prototype.slice.call(arguments, 0).reverse();
return objects.reduce(function (seedObj, object) {
return Object.keys(seedObj).concat(Object.keys(object)).reduce(function (tempObj, key) {
tempObj[key] = seedObj.hasOwnProperty(key) ? seedObj[key] : object[key];
return tempObj;
}, {});
}, objects.shift());
}
function objectIsType(obj, type) {
return (getObjType(obj) === type);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment