'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); };