Files
30-seconds-of-code/node_modules/unist-util-select/lib/collector.js
2019-08-20 15:52:05 +02:00

33 lines
612 B
JavaScript

'use strict';
// @example
// var collect = Collector();
// collect('foo');
// collect(['foo', 'bar', 'baz']);
// collect.result
// //=> ['foo', 'bar', 'baz']
//
module.exports = function Collector () {
var result = [];
// Append elements to array, filtering out duplicates.
function collect (source) {
if (Array.isArray(source)) {
source.forEach(collectOne);
}
else {
collectOne(source);
}
function collectOne (element) {
if (result.indexOf(element) < 0) {
result.push(element);
}
}
}
collect.result = result;
return collect;
};