{"_id":"object-extended","_rev":"22-953be84fc6fc703afc0504f7efdecefa","name":"object-extended","description":"Additional object extensions with a chainable api","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"object-extended","version":"0.0.1","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extender":"0.0.4","is-extended":"0.0.1"},"devDependencies":{"it":"~0.1.0","grunt-it":"~0.3.0"},"readme":"[![build status](https://secure.travis-ci.org/doug-martin/object-extended.png)](http://travis-ci.org/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","_id":"object-extended@0.0.1","dist":{"shasum":"a79afdbce2c595f220f24c6a5fb5ae004e0ab4a2","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.1.tgz","integrity":"sha512-rUfZvo3S+q9QRfLPH37rQ8lg3F3b/Zn+tssO8NdSlhdxnU+3n9T03sPHMWZJ3dZr7meZ4A+kfkqsL0n0Xvjdww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDteOMsBOnEfo+WulpJz2a97Sg/ZJ2Ch935P0VPOOT1dwIhAPjALvOdUroq7B4a5mGNzRIPJz2iz8OUk3U+C7VAKkUP"}]},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}],"directories":{}},"0.0.2":{"name":"object-extended","version":"0.0.2","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extended":"0.0.2","is-extended":"0.0.2"},"devDependencies":{"it":"~0.1.0","grunt-it":"~0.2.1"},"readme":"[![Build Status](https://travis-ci.org/doug-martin/object-extended.png?branch=master)](undefined)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","_id":"object-extended@0.0.2","dist":{"shasum":"38169c57eaa40223868d5f75e35c86dce70a6601","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.2.tgz","integrity":"sha512-RUlxLte2TrIdXgqg4MOnAAvPuxnL4sxYGxXVXrS6e4pRTnIR85EvBUz1WnCjYSPhxLBVCEXf7KqdjNezajePBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFB4hDQGatYNYpu4GPt1hJrzkyC6hR44dwWa5gIxTfDxAiEAjk3B1uGxhKC+NS++W0Z9ZVQdWrdy1o6/N7Le4kxR9/g="}]},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}]},"0.0.3":{"name":"object-extended","version":"0.0.3","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"testling":{"files":"test/browserling.js","browsers":{"ie":[6,7,8,9],"chrome":[4,23,"canary"],"firefox":[3,3.5,3.6,4,17,"nightly"],"opera":[10,10.5,11,11.5,11.6,12,"next"],"safari":["5.0.1",5.1]}},"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extended":"~0.0.3","is-extended":"~0.0.3"},"devDependencies":{"it":"~0.2.0","grunt-it":"~0.2.1"},"readme":"[![Build Status](https://travis-ci.org/doug-martin/object-extended.png?branch=master)](undefined)\n\n[![browser support](http://ci.testling.com/doug-martin/object-extended.png)](http://ci.testling.com/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","_id":"object-extended@0.0.3","dist":{"shasum":"8fdb814fd9872187b64f8a489d926057bff29217","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.3.tgz","integrity":"sha512-QM+F8F64D5IYCP3yMpxfXgZ2tM9fCAsNRkQZ/01qIpllhqIi9OqxpV194iiDtilK19A9PU+4g7WncdPjFO32Wg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNy6YFPUWKXwLxu+2tHeUAdUlwA3vv5xMSxHDQSoi70AIhAO46x4xVQpPLkF2JMwg6xSNiM2RAXAl2f1hVWfsPxGB/"}]},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}]},"0.0.4":{"name":"object-extended","version":"0.0.4","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/14..latest","safari/latest","iphone/6","ipad/6"]},"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extended":"~0.0.3","is-extended":"~0.0.3","array-extended":"0.0.4"},"devDependencies":{"it":"~0.2.0","grunt-it":"~0.3.1","grunt-contrib-uglify":"~0.2.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.4.0"},"readme":"[![Build Status](https://travis-ci.org/doug-martin/object-extended.png?branch=master)](https://travis-ci.org/doug-martin/object-extended)\n\n[![browser support](https://ci.testling.com/doug-martin/object-extended.png)](https://ci.testling.com/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n**`hash.omit`**\n\n\nReturns a new hash that is the with the given keys omitted.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).omit(\"e\"); //{a : \"b\", c : \"d\"}\nobj(myObj).omit([\"c\", \"e\"]); //{a : \"b\"}\n\nobj.hash.omit(myObj, \"e\"); //{a : \"b\", c : \"d\"}\nobj.hash.omit(myObj, [\"c\", \"e\"]); //{a : \"b\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","_id":"object-extended@0.0.4","dist":{"shasum":"7ae7be2dd19e68de27d5f0435eb9da7ac48c4782","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.4.tgz","integrity":"sha512-nMuja5xNYbyhXv3z+3knKhpKewluRCayN3WqpCCcU8Tt2QSC/c0EMzWWitZPaW8tpj6v0eiBHzvotsJO40a3Tg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZnGUgXQ2mZyuNhMSYtrOdkNWM4xN/WCbCUZW841x8cQIgH2Jb9WxGVTZRHiixlepesWeZr7r33yh/mJxpqpbBDMI="}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}]},"0.0.5":{"name":"object-extended","version":"0.0.5","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/14..latest","safari/latest","iphone/6","ipad/6"]},"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extended":"~0.0.3","is-extended":"~0.0.3","array-extended":"0.0.4"},"devDependencies":{"it":"~0.2.0","grunt-it":"~0.3.1","grunt-contrib-uglify":"~0.2.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.4.0"},"readme":"[![Build Status](https://travis-ci.org/doug-martin/object-extended.png?branch=master)](https://travis-ci.org/doug-martin/object-extended)\n\n[![browser support](https://ci.testling.com/doug-martin/object-extended.png)](https://ci.testling.com/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n**`hash.omit`**\n\n\nReturns a new hash that is the with the given keys omitted.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).omit(\"e\"); //{a : \"b\", c : \"d\"}\nobj(myObj).omit([\"c\", \"e\"]); //{a : \"b\"}\n\nobj.hash.omit(myObj, \"e\"); //{a : \"b\", c : \"d\"}\nobj.hash.omit(myObj, [\"c\", \"e\"]); //{a : \"b\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","_id":"object-extended@0.0.5","dist":{"shasum":"13618e6c42cacc7e1aabf165d9ec0d8d2574475c","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.5.tgz","integrity":"sha512-vTMLwrNkQhgO1RVIUhMT8v7fRn5tpZae/6hVuS5sY7Q5/pYBdDbSXXwduwW8GJyg0FHLTpIS6RF1gQTr2NNgzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5MqdgeZ3zZ5/bQQMSdPoKlZrixD/FG0eQmnwvVmLsPgIhALfbh1gQitV5wxnqKSJdSNEQR/+xVvjSwIVxVga4NlUR"}]},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}]},"0.0.6":{"name":"object-extended","version":"0.0.6","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/14..latest","safari/latest","iphone/6","ipad/6"]},"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extended":"~0.0.3","is-extended":"~0.0.3","array-extended":"0.0.4"},"devDependencies":{"it":"~0.2.0","grunt-it":"~0.3.1","grunt-contrib-uglify":"~0.2.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.4.0"},"readme":"[![Build Status](https://travis-ci.org/doug-martin/object-extended.png?branch=master)](https://travis-ci.org/doug-martin/object-extended)\n\n[![browser support](https://ci.testling.com/doug-martin/object-extended.png)](https://ci.testling.com/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n**`hash.omit`**\n\n\nReturns a new hash that is the with the given keys omitted.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).omit(\"e\"); //{a : \"b\", c : \"d\"}\nobj(myObj).omit([\"c\", \"e\"]); //{a : \"b\"}\n\nobj.hash.omit(myObj, \"e\"); //{a : \"b\", c : \"d\"}\nobj.hash.omit(myObj, [\"c\", \"e\"]); //{a : \"b\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","bugs":{"url":"https://github.com/doug-martin/object-extended/issues"},"_id":"object-extended@0.0.6","dist":{"shasum":"738ac1f7552b8649f2d86e7e74b4f04b8980a470","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.6.tgz","integrity":"sha512-sPikzJvws+2sqhKdl0gvFgcUREeo7JRSMXNMJ0aXAyFF/gUl1UMGHf26CFnkooOquN3cUvOvsNgxEWmib+dB7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEf3HNilA2zaqi8oY8WCZrWD+W8ZlVYDJ0Ucab+l52zfAiAri9mFMWWnFQRk+Z9GYdNv3TPVXa37NA/eZ/FwQB94pw=="}]},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}]},"0.0.7":{"name":"object-extended","version":"0.0.7","description":"Additional object extensions with a chainable api","main":"index.js","scripts":{"test":"it -r dot"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"keywords":["Object","extender","utilities"],"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/14..latest","safari/latest","iphone/6","ipad/6"]},"author":{"name":"Doug Martin"},"license":"MIT","dependencies":{"extended":"~0.0.3","is-extended":"~0.0.3","array-extended":"~0.0.4"},"devDependencies":{"it":"~0.2.0","grunt-it":"~0.3.1","grunt-contrib-uglify":"~0.2.0","grunt":"~0.4.1","grunt-contrib-jshint":"~0.4.0"},"readme":"[![Build Status](https://travis-ci.org/doug-martin/object-extended.png?branch=master)](https://travis-ci.org/doug-martin/object-extended)\n\n[![browser support](https://ci.testling.com/doug-martin/object-extended.png)](https://ci.testling.com/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n**`hash.omit`**\n\n\nReturns a new hash that is the with the given keys omitted.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).omit(\"e\"); //{a : \"b\", c : \"d\"}\nobj(myObj).omit([\"c\", \"e\"]); //{a : \"b\"}\n\nobj.hash.omit(myObj, \"e\"); //{a : \"b\", c : \"d\"}\nobj.hash.omit(myObj, [\"c\", \"e\"]); //{a : \"b\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","readmeFilename":"README.md","bugs":{"url":"https://github.com/doug-martin/object-extended/issues"},"_id":"object-extended@0.0.7","dist":{"shasum":"84fd23f56b15582aeb3e88b05cb55d2432d68a33","tarball":"https://registry.npmjs.org/object-extended/-/object-extended-0.0.7.tgz","integrity":"sha512-2LJYIacEXoZ1glGkAZuvA/4pfJM4Y1ShReAo9jWpBSuz89TiUCdiPqhGJJ6m97F3WjhCSRwrbgaxYEAm9dRYBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICibYz96Uiz2H2o6epMQBB4aVPK+KzwfDXKh/tkytgkAAiEAlGA3IKCBLU/Fe1PvNjfv3pbf/5+ljUPloLbJF2VBnrs="}]},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}]}},"readme":"[![build status](https://secure.travis-ci.org/doug-martin/object-extended.png)](http://travis-ci.org/doug-martin/object-extended)\n\n# object-extended\n\n`object-extended` is a Javascript library that can be used standalone or incorporated into [`extended`](https://github.com/doug-martin/extended)\n\n```javascript\nvar obj = require(\"object-extended\");\n```\n\nOr\n\n```javascript\nvar myextended = require(\"extended\")\n\t.register(require(\"object-extended\"));\n```\n\n## Installation\n\n```\nnpm install object-extended\n```\n\nOr [download the source](https://raw.github.com/doug-martin/object-extended/master/index.js) ([minified](https://raw.github.com/doug-martin/object-extended/master/object-extended.min.js))\n\n## Usage\n\n**`merge`**\n\nmerges the properties of one object into another.\n\n**Note** This method changes the original object.\n\n```javascript\n\nobj.merge({}, {a : \"a\"}, {b : \"b\"}, {c : \"c\"}); //{a : \"a\", b : \"b\", c : \"c\"});\n\n```\n\n**`extend`**\n\nMerges properties into a function prototype or delegates to `merge`.\n\n```\nvar MyObj = function () {\n};\nMyObj.prototype.test = true;\nobject.extend(MyObj, {test2: false, test3: \"hello\", test4: \"world\"});\n\nvar myOjb = new MyObj();\nmyObj.test2; //false\nmyObj.test3; //\"hello\"\nmyObj.test4; //\"world\"\n```\n\n**`deepMerge`**\n\nMerges objects together only overriding properties that are different.\n\n**Note**: this function takes a variable number of objects to merge\n\n```javascript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj.deepMerge(myObj, {my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n\n```\n\nOr\n\n```javacript\nvar myObj = {my : {cool : {property1 : 1, property2 : 2}}};\nobj(myObj).deepMerge({my : {cool : {property3 : 3}}});\n\nmyObj.my.cool.property1; // 1\nmyObj.my.cool.property2; // 2\nmyObj.my.cool.property3; // 3\n```\n\n\n**`hash.forEach`**\n\nLoops through each k/v in a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).forEach(function(value, key){\n    console.log(value, key);\n});\n\nobj.hash.forEach(myObj, function(value, key){\n   console.log(value, key);\n});\n```\n\n**`hash.filter`**\n\n\nFilters out key/value pairs in an object.\nFilters out key/value pairs that return a falsey value from the iterator.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).filter(function(value, key){\n    return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\nobj.hash.filter(myObj, function(value, key){\n   return value == \"b\" || key === \"e\";\n}); //{a : \"b\", e : \"f\"};\n\n```\n\n\n**`hash.values`**\n\nReturns the values of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).values(); //[\"b\", \"d\", \"f\"]\n\nobj.values(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.keys`**\nReturns the keys of a hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).keys(); //[\"a\", \"c\", \"e\"]\n\nobj.keys(myObj); //[\"b\", \"d\", \"f\"]\n\n```\n\n**`hash.invert`**\n\n\nReturns a new hash that is the invert of the hash.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).invert(); //{b : \"a\", d : \"c\", f : \"e\"}\n\nobj.hash.invert(myObj); //{b : \"a\", d : \"c\", f : \"e\"}\n```\n\n\n**`hash.toArray`**\n\nConverts a hash to an array.\n\n```javascript\nvar myObj = {a : \"b\", c : \"d\", e : \"f\"};\nobj(myObj).toArray(); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n\nobj.hash.toArray(myObj); //[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]\n```","maintainers":[{"name":"damartin","email":"doug@dougamartin.com"}],"time":{"modified":"2022-06-22T16:32:45.520Z","created":"2013-01-16T21:25:22.413Z","0.0.1":"2013-01-16T21:25:23.315Z","0.0.2":"2013-01-17T04:15:21.184Z","0.0.3":"2013-01-22T07:50:52.219Z","0.0.4":"2013-04-07T03:46:39.005Z","0.0.5":"2013-04-16T16:14:33.636Z","0.0.6":"2013-06-05T05:40:12.533Z","0.0.7":"2013-06-06T21:58:05.240Z"},"author":{"name":"Doug Martin"},"repository":{"type":"git","url":"git:git@github.com:doug-martin/object-extended.git"},"users":{"rocket0191":true}}