UNPKG

dynamic-display-shared

Version:

A library for dynamic view

27 lines 3.42 kB
export function groupBy(list, keyGetter) { return list.reduce((groups, item, i, a, key = keyGetter(item)) => ((groups[key] || (groups[key] = [])).push(item), groups), {}); } // export function groupBy(list, keyGetter) { // const map = new Map(); // list.forEach((item) => { // const key = keyGetter(item); // const collection = map.get(key); // if (!collection) { // map.set(key, [item]); // } else { // collection.push(item); // } // }); // return map; // } // export const groupBy(items, key) => items.reduce( // (result, item) => ({ // ...result, // [item[key]]: [ // ...(result[item[key]] || []), // item, // ], // }), // {}, // ); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnkudXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtZGlzcGxheS1zaGFyZWQvc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9ncm91cC1ieS51dGlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQUksSUFBdUIsRUFBRSxTQUFtTztJQUNyUixPQUFPLElBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuSSxDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0Isd0NBQXdDO0FBQ3hDLDRDQUE0QztBQUM1Qyw4QkFBOEI7QUFDOUIscUNBQXFDO0FBQ3JDLG9CQUFvQjtBQUNwQixzQ0FBc0M7QUFDdEMsYUFBYTtBQUNiLFVBQVU7QUFDVixrQkFBa0I7QUFDbEIsSUFBSTtBQUVKLG9EQUFvRDtBQUNwRCwyQkFBMkI7QUFDM0IscUJBQXFCO0FBQ3JCLHlCQUF5QjtBQUN6Qiw0Q0FBNEM7QUFDNUMsb0JBQW9CO0FBQ3BCLGFBQWE7QUFDYixVQUFVO0FBQ1YsVUFBVTtBQUNWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ3JvdXBCeTxUPihsaXN0OiBhbnlbXSB8IHVuZGVmaW5lZCwga2V5R2V0dGVyOiB7IChjaGFuZ2U6IHsgZ3JvdXBOdW1iZXI6IGFueTsgfSk6IGFueTsgKGRhdGE6IGFueSk6IGFueTsgKGhlYWRlcjogYW55KTogYW55OyAoY2hhcnQ6IGFueSk6IGFueTsgKGNoYXJ0OiBhbnkpOiBhbnk7IChjaGFuZ2U6IGFueSk6IGFueTsgKGNoYW5nZTogYW55KTogc3RyaW5nOyAoY2hhbmdlOiB7IGdyb3VwTnVtYmVyOiBhbnk7IH0pOiBhbnk7IChhcmcwOiBhbnkpOiBhbnk7IH0pOiBUW10ge1xyXG4gIHJldHVybiBsaXN0IS5yZWR1Y2UoKGdyb3VwcywgaXRlbSwgaSwgYSwga2V5ID0ga2V5R2V0dGVyKGl0ZW0pKSA9PiAoKGdyb3Vwc1trZXldIHx8IChncm91cHNba2V5XSA9IFtdKSkucHVzaChpdGVtKSwgZ3JvdXBzKSwge30pO1xyXG59XHJcblxyXG4vLyBleHBvcnQgZnVuY3Rpb24gZ3JvdXBCeShsaXN0LCBrZXlHZXR0ZXIpIHtcclxuLy8gICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcclxuLy8gICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4vLyAgICAgICAgICBjb25zdCBrZXkgPSBrZXlHZXR0ZXIoaXRlbSk7XHJcbi8vICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBtYXAuZ2V0KGtleSk7XHJcbi8vICAgICAgICAgIGlmICghY29sbGVjdGlvbikge1xyXG4vLyAgICAgICAgICAgICAgbWFwLnNldChrZXksIFtpdGVtXSk7XHJcbi8vICAgICAgICAgIH0gZWxzZSB7XHJcbi8vICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goaXRlbSk7XHJcbi8vICAgICAgICAgIH1cclxuLy8gICAgIH0pO1xyXG4vLyAgICAgcmV0dXJuIG1hcDtcclxuLy8gfVxyXG5cclxuLy8gZXhwb3J0IGNvbnN0IGdyb3VwQnkoaXRlbXMsIGtleSkgPT4gaXRlbXMucmVkdWNlKFxyXG4vLyAgICAgKHJlc3VsdCwgaXRlbSkgPT4gKHtcclxuLy8gICAgICAgICAuLi5yZXN1bHQsXHJcbi8vICAgICAgICAgW2l0ZW1ba2V5XV06IFtcclxuLy8gICAgICAgICAgICAgLi4uKHJlc3VsdFtpdGVtW2tleV1dIHx8IFtdKSxcclxuLy8gICAgICAgICAgICAgaXRlbSxcclxuLy8gICAgICAgICBdLFxyXG4vLyAgICAgfSksXHJcbi8vICAgICB7fSxcclxuLy8gKTtcclxuIl19