mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-02 16:17:50 +00:00
Bump to v4.0.0.
This commit is contained in:
57
toArray.js
Normal file
57
toArray.js
Normal file
@@ -0,0 +1,57 @@
|
||||
import _Symbol from './internal/_Symbol';
|
||||
import copyArray from './internal/copyArray';
|
||||
import getTag from './internal/getTag';
|
||||
import isArrayLike from './isArrayLike';
|
||||
import isString from './isString';
|
||||
import iteratorToArray from './internal/iteratorToArray';
|
||||
import mapToArray from './internal/mapToArray';
|
||||
import setToArray from './internal/setToArray';
|
||||
import stringToArray from './internal/stringToArray';
|
||||
import values from './values';
|
||||
|
||||
/** `Object#toString` result references. */
|
||||
var mapTag = '[object Map]',
|
||||
setTag = '[object Set]';
|
||||
|
||||
/** Built-in value references. */
|
||||
var iteratorSymbol = typeof (iteratorSymbol = _Symbol && _Symbol.iterator) == 'symbol' ? iteratorSymbol : undefined;
|
||||
|
||||
/**
|
||||
* Converts `value` to an array.
|
||||
*
|
||||
* @static
|
||||
* @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 (iteratorSymbol && value[iteratorSymbol]) {
|
||||
return iteratorToArray(value[iteratorSymbol]());
|
||||
}
|
||||
var tag = getTag(value),
|
||||
func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
|
||||
|
||||
return func(value);
|
||||
}
|
||||
|
||||
export default toArray;
|
||||
Reference in New Issue
Block a user