| /*! |
| * 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); |
| }; |