Skip to content

Instantly share code, notes, and snippets.

@nite
Last active July 20, 2021 22:14
Show Gist options
  • Save nite/7711d69fb5f755239a44fd3232355adf to your computer and use it in GitHub Desktop.
Save nite/7711d69fb5f755239a44fd3232355adf to your computer and use it in GitHub Desktop.

Revisions

  1. nite revised this gist Jul 20, 2021. 1 changed file with 5 additions and 4 deletions.
    9 changes: 5 additions & 4 deletions pivot.ts
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,13 @@
    function pivot(meltedData, columns: string[], varName: string, valueName: string) {
    function pivot(meltedData, pivotCols: string[], varName: string, valueName: string) {
    const groups = {};

    for (const d of meltedData) {
    const key = columns.map((k) => d[k]).join('|');
    const key = pivotCols.map((k) => d[k]).join('|');
    const group = groups[key];
    groups[key] = Object.assign(group ? group : fromPairs(columns.map((k) => [k, d[k]])), {
    groups[key] = {
    ...(group ? group : fromPairs(pivotCols.map((k) => [k, d[k]]))),
    [d[varName]]: d[valueName],
    });
    };
    }

    return Object.values(groups);
  2. nite created this gist Jul 20, 2021.
    13 changes: 13 additions & 0 deletions pivot.ts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    function pivot(meltedData, columns: string[], varName: string, valueName: string) {
    const groups = {};

    for (const d of meltedData) {
    const key = columns.map((k) => d[k]).join('|');
    const group = groups[key];
    groups[key] = Object.assign(group ? group : fromPairs(columns.map((k) => [k, d[k]])), {
    [d[varName]]: d[valueName],
    });
    }

    return Object.values(groups);
    }