You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.4 KiB
						
					
					
				| 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;
 |