What is concat-map?
The concat-map package is a simple utility that applies a function to each item in an array and concatenates the results into a new array. It is similar to the Array.prototype.map function combined with Array.prototype.concat, but it is implemented in a way that is compatible with older versions of JavaScript and can be used in various Node.js environments.
What are concat-map's main functionalities?
Mapping and concatenating
This feature allows you to map each element of an array to a new array and then concatenate those arrays into a single array. In the code sample, each number is mapped to an array containing the number itself and its double, resulting in a new array [1, 2, 2, 4, 3, 6].
[1, 2, 3].concatMap(function (x) { return [x, x * 2]; })
Other packages similar to concat-map
flat-map
The flat-map package offers similar functionality to concat-map, allowing you to map and flatten arrays in a single operation. It is a more modern alternative that may use Array.prototype.flatMap if available, providing better performance in environments that support it.
array.prototype.flatmap
This package is a polyfill for the Array.prototype.flatMap method, which is part of the ES2019 specification. It provides similar functionality to concat-map but is intended to mimic the native implementation as closely as possible, including adherence to the ECMAScript specification.
concat-map
Concatenative mapdashery.
example
var concatMap = require('concat-map');
var xs = [ 1, 2, 3, 4, 5, 6 ];
var ys = concatMap(xs, function (x) {
return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
});
console.dir(ys);
[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
methods
var concatMap = require('concat-map')
concatMap(xs, fn)
Return an array of concatenated elements by calling fn(x, i)
for each element
x
and each index i
in the array xs
.
When fn(x, i)
returns an array, its result will be concatenated with the
result array. If fn(x, i)
returns anything else, that value will be pushed
onto the end of the result array.
install
With npm do:
npm install concat-map
license
MIT
notes
This module was written while sitting high above the ground in a tree.