Sha256: fc9b78e09a53b32f6af424fa2e94b71de72c6721eb7fb3069fd95b8964e4f4a5

Contents?: true

Size: 477 Bytes

Versions: 26

Compression:

Stored size: 477 Bytes

Contents

'use strict';

Object.defineProperty(exports, '__esModule', {
  value: true,
});
exports.groupBy = groupBy;

/**
 * Groups array items into a Map, given a function to produce grouping key.
 */
function groupBy(list, keyFn) {
  const result = new Map();

  for (const item of list) {
    const key = keyFn(item);
    const group = result.get(key);

    if (group === undefined) {
      result.set(key, [item]);
    } else {
      group.push(item);
    }
  }

  return result;
}

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
clapton-0.0.6 lib/clapton/javascripts/node_modules/graphql/jsutils/groupBy.js
clapton-0.0.5 lib/clapton/javascripts/node_modules/graphql/jsutils/groupBy.js
clapton-0.0.4 lib/clapton/javascripts/node_modules/graphql/jsutils/groupBy.js
clapton-0.0.3 lib/clapton/javascripts/node_modules/graphql/jsutils/groupBy.js
clapton-0.0.2 lib/clapton/javascripts/node_modules/graphql/jsutils/groupBy.js
clapton-0.0.1 lib/clapton/javascripts/node_modules/graphql/jsutils/groupBy.js