array-object-filter-unique
Version:
A nice array filter unique by Object attributes
27 lines (26 loc) • 1.01 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
if (!Array.prototype.filterUniqueObject) {
Array.prototype.filterUniqueObject = function Array(conditions) {
var uniques = {};
var _loop_1 = function (s) {
if (conditions.attribute) {
var a = conditions.mutator ? conditions.mutator(s[conditions.attribute]) : s[conditions.attribute];
if (!uniques[String(a)]) {
uniques[String(a)] = s;
}
}
if (conditions.attributes) {
var a = conditions.attributes.map(function (e) { return String(e.mutator ? e.mutator(s[e.attribute]) : s[e.attribute]); });
if (!uniques[a.join('')]) {
uniques[a.join('')] = s;
}
}
};
for (var _i = 0, _a = this; _i < _a.length; _i++) {
var s = _a[_i];
_loop_1(s);
}
return Object.values(uniques);
};
}
;