Spaces:
Runtime error
Runtime error
var Symbol = require('./_Symbol'), | |
copyArray = require('./_copyArray'), | |
getTag = require('./_getTag'), | |
isArrayLike = require('./isArrayLike'), | |
isString = require('./isString'), | |
iteratorToArray = require('./_iteratorToArray'), | |
mapToArray = require('./_mapToArray'), | |
setToArray = require('./_setToArray'), | |
stringToArray = require('./_stringToArray'), | |
values = require('./values'); | |
/** `Object#toString` result references. */ | |
var mapTag = '[object Map]', | |
setTag = '[object Set]'; | |
/** Built-in value references. */ | |
var symIterator = Symbol ? Symbol.iterator : undefined; | |
/** | |
* Converts `value` to an array. | |
* | |
* @static | |
* @since 0.1.0 | |
* @memberOf _ | |
* @category Lang | |
* @param {*} value The value to convert. | |
* @returns {Array} Returns the converted array. | |
* @example | |
* | |
* _.toArray({ 'a': 1, 'b': 2 }); | |
* // => [1, 2] | |
* | |
* _.toArray('abc'); | |
* // => ['a', 'b', 'c'] | |
* | |
* _.toArray(1); | |
* // => [] | |
* | |
* _.toArray(null); | |
* // => [] | |
*/ | |
function toArray(value) { | |
if (!value) { | |
return []; | |
} | |
if (isArrayLike(value)) { | |
return isString(value) ? stringToArray(value) : copyArray(value); | |
} | |
if (symIterator && value[symIterator]) { | |
return iteratorToArray(value[symIterator]()); | |
} | |
var tag = getTag(value), | |
func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); | |
return func(value); | |
} | |
module.exports = toArray; | |