Files
Henry Whitaker ea5808047f Tweaked gitignore
gitignore removed all composer and npm files, so automated builds would fail
2020-04-12 21:24:03 +01:00

34 lines
831 B
JavaScript
Vendored

'use strict';
var _require = require('../helpers/is'),
isFunction = _require.isFunction;
module.exports = function unique(key) {
var collection = void 0;
if (key === undefined) {
collection = this.items.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
} else {
collection = [];
var usedKeys = [];
for (var iterator = 0, length = this.items.length; iterator < length; iterator += 1) {
var uniqueKey = void 0;
if (isFunction(key)) {
uniqueKey = key(this.items[iterator]);
} else {
uniqueKey = this.items[iterator][key];
}
if (usedKeys.indexOf(uniqueKey) === -1) {
collection.push(this.items[iterator]);
usedKeys.push(uniqueKey);
}
}
}
return new this.constructor(collection);
};