> For the complete documentation index, see [llms.txt](https://bryan-guner.gitbook.io/my-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bryan-guner.gitbook.io/my-docs/redux/tools-80/npm-packages/object-keys.md).

# object-keys

\#object-keys [![Version Badge](http://versionbadg.es/ljharb/object-keys.svg)](https://npmjs.org/package/object-keys)

[![Build Status](https://travis-ci.org/ljharb/object-keys.svg)](https://travis-ci.org/ljharb/object-keys) [![dependency status](https://david-dm.org/ljharb/object-keys.svg)](https://david-dm.org/ljharb/object-keys) [![dev dependency status](https://david-dm.org/ljharb/object-keys/dev-status.svg)](https://david-dm.org/ljharb/object-keys#info=devDependencies) [![License](http://img.shields.io/npm/l/object-keys.svg)](https://github.com/bgoonz/Learning-Redux/blob/master/TOOLS/npm-packages/object-keys/LICENSE/README.md) [![Downloads](http://img.shields.io/npm/dm/object-keys.svg)](http://npm-stat.com/charts.html?package=object-keys)

[![npm badge](https://nodei.co/npm/object-keys.png?downloads=true\&stars=true)](https://npmjs.org/package/object-keys)

[![browser support](https://ci.testling.com/ljharb/object-keys.png)](https://ci.testling.com/ljharb/object-keys)

An Object.keys shim. Invoke its "shim" method to shim Object.keys if it is unavailable.

Most common usage:

```js
var keys = Object.keys || require('object-keys');
```

### Example

```js
var keys = require('object-keys');
var assert = require('assert');
var obj = {
	a: true,
	b: true,
	c: true
};

assert.deepEqual(keys(obj), ['a', 'b', 'c']);
```

```js
var keys = require('object-keys');
var assert = require('assert');
/* when Object.keys is not present */
delete Object.keys;
var shimmedKeys = keys.shim();
assert.equal(shimmedKeys, keys);
assert.deepEqual(Object.keys(obj), keys(obj));
```

```js
var keys = require('object-keys');
var assert = require('assert');
/* when Object.keys is present */
var shimmedKeys = keys.shim();
assert.equal(shimmedKeys, Object.keys);
assert.deepEqual(Object.keys(obj), keys(obj));
```

### Source

Implementation taken directly from [es5-shim](https://github.com/es-shims/es5-shim/blob/master/es5-shim.js#L542-589), with modifications, including from [lodash](https://github.com/lodash/lodash).

### Tests

Simply clone the repo, `npm install`, and run `npm test`
