@analys/samples-filter
Version:
A cross-samples analytics tool
30 lines (23 loc) • 697 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
/**
* @param {Filter[]|Filter} filterCollection
* @return {Object[]} - new array
*/
const samplesFilter = function (filterCollection) {
let samples = this;
if (!Array.isArray(filterCollection)) return samplesFilterOnce.call(samples, filterCollection);
for (let filterConfig of filterCollection) samples = samplesFilterOnce.call(samples, filterConfig);
return samples;
};
/**
* @param {Filter} filterConfig
* @return {Object[]} - new array
*/
const samplesFilterOnce = function ({
field,
filter
}) {
return this.filter(sample => filter(sample[field]));
};
exports.samplesFilter = samplesFilter;