UNPKG

shoveit

Version:

shuffle an array of elements

51 lines (46 loc) 1.43 kB
function shove(arr) { var i, j, k, x, el, ret = [], tmp = [[]]; for (i = 0;i < arr.length; i++) { el = arr[i]; console.log(el); for (j = 0; j < tmp.length;) { x = false; if (el.range) { x = true; for (k = el.range[0]; k < el.range[1]; k++) { if (typeof tmp[j][k] !== 'undefined') { x = false; break; } } } else if (el.points) { x = true; for (k = 0; k < el.points.length; k++) { if (typeof tmp[j][el.points[k]] !== 'undefined') { x = false; break; } } } if (x) { ret[j] = ret[j] || []; ret[j].push(el); if (el.points) { for (k = 0; k < el.points.length; k++) tmp[j][k] = 1; } else if (el.range) { for (k = el.range[0]; k < el.range[1]; k++) tmp[j][k] = 1; } break; } else { j++; if (j === tmp.length) tmp.push([]); continue; } } } return ret; } module.exports = shove;