_makeFlat.js 740 B

1234567891011121314151617181920212223242526272829303132333435
  1. import _isArrayLike from "./_isArrayLike.js";
  2. /**
  3. * `_makeFlat` is a helper function that returns a one-level or fully recursive
  4. * function based on the flag passed in.
  5. *
  6. * @private
  7. */
  8. export default function _makeFlat(recursive) {
  9. return function flatt(list) {
  10. var value, jlen, j;
  11. var result = [];
  12. var idx = 0;
  13. var ilen = list.length;
  14. while (idx < ilen) {
  15. if (_isArrayLike(list[idx])) {
  16. value = recursive ? flatt(list[idx]) : list[idx];
  17. j = 0;
  18. jlen = value.length;
  19. while (j < jlen) {
  20. result[result.length] = value[j];
  21. j += 1;
  22. }
  23. } else {
  24. result[result.length] = list[idx];
  25. }
  26. idx += 1;
  27. }
  28. return result;
  29. };
  30. }