44 lines
		
	
	
		
			829 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			829 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*!
 | |
|  * array-unique <https://github.com/jonschlinkert/array-unique>
 | |
|  *
 | |
|  * Copyright (c) 2014-2015, Jon Schlinkert.
 | |
|  * Licensed under the MIT License.
 | |
|  */
 | |
| 
 | |
| 'use strict';
 | |
| 
 | |
| module.exports = function unique(arr) {
 | |
|   if (!Array.isArray(arr)) {
 | |
|     throw new TypeError('array-unique expects an array.');
 | |
|   }
 | |
| 
 | |
|   var len = arr.length;
 | |
|   var i = -1;
 | |
| 
 | |
|   while (i++ < len) {
 | |
|     var j = i + 1;
 | |
| 
 | |
|     for (; j < arr.length; ++j) {
 | |
|       if (arr[i] === arr[j]) {
 | |
|         arr.splice(j--, 1);
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   return arr;
 | |
| };
 | |
| 
 | |
| module.exports.immutable = function uniqueImmutable(arr) {
 | |
|   if (!Array.isArray(arr)) {
 | |
|     throw new TypeError('array-unique expects an array.');
 | |
|   }
 | |
| 
 | |
|   var arrLen = arr.length;
 | |
|   var newArr = new Array(arrLen);
 | |
| 
 | |
|   for (var i = 0; i < arrLen; i++) {
 | |
|     newArr[i] = arr[i];
 | |
|   }
 | |
| 
 | |
|   return module.exports(newArr);
 | |
| };
 |