Skip to content

Instantly share code, notes, and snippets.

@28
Created February 19, 2019 14:26
Show Gist options
  • Select an option

  • Save 28/4a2d398b0cd61c83b7d9d282114237d1 to your computer and use it in GitHub Desktop.

Select an option

Save 28/4a2d398b0cd61c83b7d9d282114237d1 to your computer and use it in GitHub Desktop.
Multiple implementations of partition function in JavaScript.
function partition(array, partitionSize) {
if (partitionSize >= array.length)
return array;
var result = [];
var partition = [];
for (var i = 0; i < array.length; i++) {
if (partition.length < partitionSize) {
partition.push(array[i]);
console.log(partition);
}
if (partition.length === partitionSize) {
result.push(partition.slice(0));
partition = [];
}
if (i === array.length - 1 && partition.length > 0) {
result.push(partition.slice(0));
}
}
return result;
}
function partitionr(array, partitionSize) {
return array.reduce(function (p, c, i, a) {
var partition = p[p.length - 1];
if (partition == null || partition.length === partitionSize) {
partition = [];
partition.push(c);
p.push(partition);
} else if (partition.length < partitionSize) {
partition.push(c);
}
return p;
}, []);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment