my-idlers/node_modules/collect.js/dist/methods/unique.js
cp6 fd22b0bf58 V2 (Laravel re-make)
V2 (Laravel re-make)
2022-03-06 02:02:12 +11: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);
};