functionfoundry
Version:
Pure function JavaScript library
33 lines (28 loc) • 939 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = filter;
// Copyright 2015 JC Fisher
// FILTER limits a range based on arrays of boolean values.
function filter(range) {
for (var _len = arguments.length, filters = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
filters[_key - 1] = arguments[_key];
}
// A filter is an array of true/false values.
// The filter may be for rows or for columns but not both.
// A array filter may only filter a range that covers a single row or a single column.
function makefilter() {
return function (value, index) {
return filters.reduce(function (previousValue, currentValue) {
if (previousValue === false) {
return false;
} else {
return currentValue[index];
}
}, true);
};
}
return range.filter(makefilter());
}
module.exports = exports["default"];