30 lines
		
	
	
		
			527 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			527 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | module.exports = function union(init) { | ||
|  |   if (!Array.isArray(init)) { | ||
|  |     throw new TypeError('arr-union expects the first argument to be an array.'); | ||
|  |   } | ||
|  | 
 | ||
|  |   var len = arguments.length; | ||
|  |   var i = 0; | ||
|  | 
 | ||
|  |   while (++i < len) { | ||
|  |     var arg = arguments[i]; | ||
|  |     if (!arg) continue; | ||
|  | 
 | ||
|  |     if (!Array.isArray(arg)) { | ||
|  |       arg = [arg]; | ||
|  |     } | ||
|  | 
 | ||
|  |     for (var j = 0; j < arg.length; j++) { | ||
|  |       var ele = arg[j]; | ||
|  | 
 | ||
|  |       if (init.indexOf(ele) >= 0) { | ||
|  |         continue; | ||
|  |       } | ||
|  |       init.push(ele); | ||
|  |     } | ||
|  |   } | ||
|  |   return init; | ||
|  | }; |