d3.group - AndyStobirski/tabular-vis.js GitHub Wiki

d3.group groups values by key. It returns a map from key to the corresponding array of values from the input.

const d3 = require("d3");`

var num = ["92", "82", "59", "144", "72", "52", "34", "1.63", "81,888",
 "81", "34", "1.63", "81,888", "81", "81", "81", "81", "1.63", "81,888", "81", "81", "81", "81"];`

var grp = d3.group(num, n=>n);

console.log( grp);

Produces the following:

InternMap(10) [Map] {
  '92' => [ '92' ],
  '82' => [ '82' ],
  '59' => [ '59' ],
  '144' => [ '144' ],
  '72' => [ '72' ],
  '52' => [ '52' ],
  '34' => [ '34', '34' ],
  '1.63' => [ '1.63', '1.63', '1.63' ],
  '81,888' => [ '81,888', '81,888', '81,888' ],
  '81' => [
    '81', '81', '81',
    '81', '81', '81',
    '81', '81', '81'
  ]
}

The following

var values = 
[
  { name: 175, value: 0.47 },
      { name: 175, value: 0.67 },
      { name: 175, value: 0.7 },
      { name: 178, value: 0.64 },
      { name: 179, value: 0.92 },
      { name: 180, value: 0.7 },
      { name: 181, value: 0.26 },
      { name: 181, value: 0.28 },
      { name: 181, value: 0.64 },
      { name: 184, value: 0.63 }
];
console.log(d3.group(values, v=>v.name));

Produces the output of

InternMap(6) [Map] {
  175 => [
    { name: 175, value: 0.47 },
    { name: 175, value: 0.67 },
    { name: 175, value: 0.7 }
  ],
  178 => [ { name: 178, value: 0.64 } ],
  179 => [ { name: 179, value: 0.92 } ],
  180 => [ { name: 180, value: 0.7 } ],
  181 => [
    { name: 181, value: 0.26 },
    { name: 181, value: 0.28 },
    { name: 181, value: 0.64 }
  ],
  184 => [ { name: 184, value: 0.63 } ]
}