subdivideArray.js 993 B

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