Source: Core/subdivideArray.js

  1. /*global define*/
  2. define([
  3. './defined',
  4. './DeveloperError'
  5. ], function(
  6. defined,
  7. DeveloperError) {
  8. 'use strict';
  9. /**
  10. * Subdivides an array into a number of smaller, equal sized arrays.
  11. *
  12. * @exports subdivideArray
  13. *
  14. * @param {Array} array The array to divide.
  15. * @param {Number} numberOfArrays The number of arrays to divide the provided array into.
  16. *
  17. * @exception {DeveloperError} numberOfArrays must be greater than 0.
  18. */
  19. function subdivideArray(array, numberOfArrays) {
  20. //>>includeStart('debug', pragmas.debug);
  21. if (!defined(array)) {
  22. throw new DeveloperError('array is required.');
  23. }
  24. if (!defined(numberOfArrays) || numberOfArrays < 1) {
  25. throw new DeveloperError('numberOfArrays must be greater than 0.');
  26. }
  27. //>>includeEnd('debug');
  28. var result = [];
  29. var len = array.length;
  30. var i = 0;
  31. while (i < len) {
  32. var size = Math.ceil((len - i) / numberOfArrays--);
  33. result.push(array.slice(i, i + size));
  34. i += size;
  35. }
  36. return result;
  37. }
  38. return subdivideArray;
  39. });