2.3.0 • Published 11 years ago

taxonomist v2.3.0

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

Taxonomist.js npm Version Build Status Coverage Status

Group objects into categories based on an object property.

Usage

var arr = [
  { fields: { tags: ['foo', 'bar'] } },
  { fields: { tags: ['baz'] } },
  { fields: { tags: 'bar' } }
];

// categorise by property
taxonomist(arr, function(obj, i) {
  return obj.fields.tags;
});
/* {
 *   foo: [ arr[0] ],
 *   bar: [ arr[0], arr[2] ],
 *   baz: [ arr[1] ]
 * }
 */

// modify the value used to perform the categorisation
taxonomist(arr, 'fields.tags', function(tag, i) {
  return tag[0]; // categorise according to the first letter of each `tag`
});
/* {
 *   f: [ arr[0] ],
 *   b: [ arr[0], arr[1], arr[2] ]
 * }
 */

API

taxonomist(arr, prop , fn)

Categorise objects in arr based on the property specified by prop.

  • arr An array we want to categorise.
  • prop Either a dot-delimited string or a function.
    • If a dot-delimited string, it must correspond to the categories of each object in arr.
    • If a function, it will be passed each object in arr, in addition to that objects index. The function must return the categories of that particular object.
  • fn A function (optional; defaults to the identity function) for modifying the value used to perform the categorisation. It is passed each category of each object.

Installation

Install via npm:

$ npm i --save taxonomist

Changelog

  • 2.3.0
    • Allow prop to be a function
  • 2.2.0
    • Migrate tests to tape
  • 2.1.0
    • Add fn for modifying the value used for categorising the objects in arr
  • 2.0.0
    • Drop support for returning indices in the result
    • The value corresponding to prop in each object need not be an array
  • 1.0.0
    • Initial release

License

MIT license

2.3.0

11 years ago

2.1.0

11 years ago

2.0.0

11 years ago

1.0.3

11 years ago

1.0.2

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago