Skip to content

Replacements for collection-map

Objects

js
const map = require('collection-map') 
const data = { a: 'foo', b: 'bar', c: 'baz' }

// Mapping values
const res = map(data, (item) => item) 
const res = Object.values(data).map((item) => item) 

// Mapping keys
const res = map(data, (item, key) => key) 
const res = Object.keys(data).map((key) => key) 

// Mapping keys and values
const res = map(data, (item, key) => fn(item, key)) 
const res = Object.fromEntries( 
  Object.entries(data).map(([key, value]) => fn(value, key)) 
) 

Arrays

js
const map = require('collection-map') 
const data = ['foo', 'bar', 'baz']

// Mapping items
const res = map(data, (item) => item) 
const res = data.map((item) => item) 

// Mapping indices
const res = map(data, (item, index) => index) 
const res = data.map((_, index) => index) 

// Mapping items indices
const res = map(data, (item, index) => fn(item, index)) 
const res = data.map((item, index) => fn(item, index)) 

Property Strings

When passing a string to extract a specific property, use a standard map with property access.

js
const map = require('collection-map') 

const obj = {
  a: { aaa: 'one', bbb: 'four', ccc: 'seven' },
  b: { aaa: 'two', bbb: 'five', ccc: 'eight' },
  c: { aaa: 'three', bbb: 'six', ccc: 'nine' }
}

// Objects: Map values to property
map(obj, 'aaa') 
Object.values(obj).map((item) => item.aaa) 

// Arrays: Map items to property
const array = [obj.a, obj.b, obj.c]
map(array, 'bbb') 
array.map((item) => item.bbb) 

thisArg (Context)

Native .map() supports a second argument for thisArg.

js
const map = require('collection-map') 

const array = ['a', 'b', 'c']
const ctx = { a: 'aaa', b: 'bbb', c: 'ccc' }

const res = map(array, function(item) { 
const res = array.map(function(item) { 
  return this[item]
}, ctx)

Released under the MIT License. (1f304c6e)