48 lines
		
	
	
		
			805 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			805 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/*!
							 | 
						||
| 
								 | 
							
								 * arr-diff <https://github.com/jonschlinkert/arr-diff>
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2014-2017, Jon Schlinkert.
							 | 
						||
| 
								 | 
							
								 * Released under the MIT License.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function diff(arr/*, arrays*/) {
							 | 
						||
| 
								 | 
							
								  var len = arguments.length;
							 | 
						||
| 
								 | 
							
								  var idx = 0;
							 | 
						||
| 
								 | 
							
								  while (++idx < len) {
							 | 
						||
| 
								 | 
							
								    arr = diffArray(arr, arguments[idx]);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return arr;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function diffArray(one, two) {
							 | 
						||
| 
								 | 
							
								  if (!Array.isArray(two)) {
							 | 
						||
| 
								 | 
							
								    return one.slice();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var tlen = two.length
							 | 
						||
| 
								 | 
							
								  var olen = one.length;
							 | 
						||
| 
								 | 
							
								  var idx = -1;
							 | 
						||
| 
								 | 
							
								  var arr = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  while (++idx < olen) {
							 | 
						||
| 
								 | 
							
								    var ele = one[idx];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var hasEle = false;
							 | 
						||
| 
								 | 
							
								    for (var i = 0; i < tlen; i++) {
							 | 
						||
| 
								 | 
							
								      var val = two[i];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (ele === val) {
							 | 
						||
| 
								 | 
							
								        hasEle = true;
							 | 
						||
| 
								 | 
							
								        break;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (hasEle === false) {
							 | 
						||
| 
								 | 
							
								      arr.push(ele);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return arr;
							 | 
						||
| 
								 | 
							
								}
							 |