Package Exports
- grouper
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (grouper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Grouper.js

Assign objects into groups by one or more properties, by object value, or by using a comparator function.
API
grouper(arr, props [, opts])
Group by one or more properties.
var arr = [
{ title: 'foo', date: { year: 1999, month: 1 } },
{ title: 'foo', date: { year: 2000, month: 1 } },
{ title: 'bar', date: { year: 2000, month: 1 } },
{ title: 'bar', date: { year: 2000, month: 2 } },
];
// group by multiple properties
grouper(arr, ['title', 'date.year']);
/* [
* [ arr[0] ],
* [ arr[1] ],
* [ arr[2], arr[3] ]
* ]
*/- Objects in
arrwill be grouped together if and only if they are the same for every property specified inprops. Comparison is via the deep-equal module withopts.strictset to true. - To group on a “nested” property, use a dot-delimited string (eg.
date.yearabove). (See Jaunt.js.) - For coercive comparison (
==), pass in anoptsargument, settingopts.stricttofalse.
grouper(arr [, opts])
Group by object value.
var arr = [
{ foo: true },
{ foo: 1 },
{ foo: false },
{ foo: 1 }
];
// group by object value (with coercive `==`)
grouper(arr, { strict: false });
/* [
* [ arr[0], arr[1], arr[3] ],
* [ arr[2] ]
* ]
*/- Objects in
arrwill be grouped together if and only if they are the same value. Comparison is via the deep-equal module withopts.strictset to true. - For coercive comparison (
==), pass in anoptsargument, settingopts.stricttofalse.
grouper(arr, fn)
Group using a comparator function.
var arr = [
{ foo: true },
{ foo: 1 },
{ foo: false },
{ foo: 1 }
];
// group using a comparator function
var fn = function(a, b) {
return a.foo === b.foo;
};
grouper(arr, fn);
/* [
* [ arr[0] ],
* [ arr[1], arr[3] ],
* [ arr[2] ]
* ]
*/The fn comparator function will be passed two elements from arr. The function must return a truthy value if its two arguments are to be placed in the same group.
Installation
Install via npm:
$ npm i --save grouperChangelog
- 2.1.0
- Allow grouping using a comparator function
- 2.0.0
- Use deep-equal for comparing property values, with option to use coercive comparison
- Allow grouping by object value
- Allow grouping by nested keys
- 1.0.0
- Initial release