{"id":18649056,"url":"https://github.com/llafuente/js-object-enhancements","last_synced_at":"2025-11-05T08:30:34.468Z","repository":{"id":10700509,"uuid":"12944729","full_name":"llafuente/js-object-enhancements","owner":"llafuente","description":"Many helpful functions for javascript Object","archived":false,"fork":false,"pushed_at":"2014-02-26T16:54:20.000Z","size":340,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-13T06:57:09.766Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/llafuente.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-19T09:08:17.000Z","updated_at":"2014-02-26T16:54:20.000Z","dependencies_parsed_at":"2022-09-14T03:01:53.131Z","dependency_job_id":null,"html_url":"https://github.com/llafuente/js-object-enhancements","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llafuente%2Fjs-object-enhancements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llafuente%2Fjs-object-enhancements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llafuente%2Fjs-object-enhancements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/llafuente%2Fjs-object-enhancements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/llafuente","download_url":"https://codeload.github.com/llafuente/js-object-enhancements/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239451435,"owners_count":19640940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T06:34:57.269Z","updated_at":"2025-11-05T08:30:34.426Z","avatar_url":"https://github.com/llafuente.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# js-object-enhancements [![Build Status](https://secure.travis-ci.org/llafuente/js-object-enhancements.png?branch=master)](http://travis-ci.org/llafuente/js-object-enhancements)\n\n![NPM](https://nodei.co/npm/object-enhancements.png?compact=true)\n\n## Introduction\n\nFunctions included\n\n```js\n\nvar object = require(\"object-enhancements\");\n\n// proper typeof implementation\nobject.typeof(): String\n\n// loop an object, like forEach\nobject.forEach(obj, callback(value[, key]))\nobject.each(obj, callback(value[, key]))\n\n// recursive clone the object, no only the structure also the values\nobject.clone(obj): Mixed\n\n// merge two objects recursive.\n// to merge only existing keys in from object: must_exists = true\n// to also clone values: clone = true\nobject.merge(from, to[, clone = false[, must_exists = false]]): Object\n\n// combine two arrays into an object given keys-values\nobject.combine(array_keys, array_values): Object\n\n// extract from an object given keys\n// extract return an object with all keys given, if not found in obj will return default_value\nobject.extract(obj, array_keys[, default_value = null]): Object\n\n// check if an object don't have any key-value\nobject.empty(obj): Boolean\n\n// tell you how depth is the object structure\n// note: also loop arrays\nobject.depth(obj): Number\n\n// sort object keys, so in loop will be sorted\nobject.ksort(obj)\n\n// recursive filter an object (sync!)\nobject.rFilter(obj, callback, loop_arrays): Object\n\n// create a new object with keys prefixed\nobject.prefixKeys(obj, prefix, ignore_keys): Object\n\n// create a new object with removing the prefix from keys (if exists)\nobject.prefixKeys(obj, prefix, ignore_keys): Object\n\n// Computes the difference of objects with additional index check\nobject.diff(obj[, ...Objects]): Object\n\n\n// compatibility layer for old browsers\nObject.keys // what you expect, get all enumerable keys\nObject.defineProperty // throws in case of setter/getter\nObject.seal // just do nothing\n\n\n\n```\n\n## Install\n\nWith [npm](http://npmjs.org) do:\n\n```\n\nnpm install object-enhancements\n\n\n```\n\n## test (travis-ci ready!)\n\n```\n\nnpm test\n// or\ncd /test\nnode test.js\n\n```\n\n## license\n\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllafuente%2Fjs-object-enhancements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllafuente%2Fjs-object-enhancements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllafuente%2Fjs-object-enhancements/lists"}