philomena/assets/js/utils/array.js
2021-10-25 23:42:29 -04:00

33 lines
658 B
JavaScript

// http://stackoverflow.com/a/5306832/1726690
function moveElement(array, from, to) {
array.splice(to, 0, array.splice(from, 1)[0]);
}
function arraysEqual(array1, array2) {
for (let i = 0; i < array1.length; ++i) {
if (array1[i] !== array2[i]) return false;
}
return true;
}
/**
* @template T
* @param {T[]} array
* @param {number} numBins
* @returns {T[][]}
*/
function evenlyDivide(array, numBins) {
const bins = [];
for (let i = 0; i < numBins; i++) {
bins[i] = [];
}
for (let i = 0; i < array.length; i++) {
bins[i % numBins].push(array[i]);
}
return bins;
}
export { moveElement, arraysEqual, evenlyDivide };