toIterable.js 527 B

12345678910111213141516171819202122
  1. var isArrayLike = require('./isArrayLike'),
  2. isObject = require('../lang/isObject'),
  3. values = require('../object/values');
  4. /**
  5. * Converts `value` to an array-like object if it's not one.
  6. *
  7. * @private
  8. * @param {*} value The value to process.
  9. * @returns {Array|Object} Returns the array-like object.
  10. */
  11. function toIterable(value) {
  12. if (value == null) {
  13. return [];
  14. }
  15. if (!isArrayLike(value)) {
  16. return values(value);
  17. }
  18. return isObject(value) ? value : Object(value);
  19. }
  20. module.exports = toIterable;