group - nodef/extra-iterable GitHub Wiki

Keep similar values together and in order.

Similar: cut, split, group.

function group(x, fc, fm)
// x:  an iterable
// fc: compare function (a, b)
// fm: map function (v, i, x)
const xiterable = require('extra-iterable');

var x = [1, 2, 2, -2, -2, 4];
[...xiterable.group(x)];
// → [1], [2, 2], [-2, -2], [4](/nodef/extra-iterable/wiki/1],-[2,-2],-[-2,--2],-[4)

[...xiterable.group(x, (a, b) => Math.abs(a) - Math.abs(b))];
// → [1], [2, 2, -2, -2], [4](/nodef/extra-iterable/wiki/1],-[2,-2,--2,--2],-[4)

[...xiterable.group(x, null, v => Math.abs(v))];
// → [1], [2, 2, -2, -2], [4](/nodef/extra-iterable/wiki/1],-[2,-2,--2,--2],-[4)

References