1.0.0 • Published 6 years ago

keys-array v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

keys-array

Returns an array of the keys/indexes of an Object, Map, Array, or Typed Array. Useful for when you need the keys of a collection object but aren’t sure what type of collection you’ll be given.

Installation

Requires Node.js 6.0.0 or above.

npm i keys-array

API

The module exports a single function.

Parameter

Bindable: c (Array, Iterator, Object, Map, Set, or Typed Array)

Return Value

An array of keys from the collection.

Examples

Arrays

const keys = require('keys-array')

keys(['a', 'b']) // [0, 1]

// Supports the bind operator
['a', 'b']::keys() // [0, 1]

Iterators

keys-array will treat an iterator as if it were an array of values. Each “key” will be an incrementing integer index that starts at zero.

const keys = require('keys-array')

function * gen () {
  yield 'a'
  yield 'b'
}

keys(gen()) // [0, 1]

Maps

const keys = require('keys-array')

const map = new Map()
map.set('key', 'value')

keys(map) // ['key']

Objects

const keys = require('keys-iterator')

keys({key: 'value'}) // ['key']

// Supports the bind operator
const obj = {key: 'value'}
obj::keys() // ['key']

Sets

keys-array will treat a Set like an array, and will yield integer index keys starting at zero. Note that this behavior is different from that of the built-in Set.prototype.keys() method.

const keys = require('keys-array')

const set = new Set()
set.add('first')
set.add('second')

keys(set) // [0, 1]

Typed Arrays

const keys = require('keys-array')

const typedArray = new Int32Array(new ArrayBuffer(4))

keys(typedArray) // [0]

Related