UNPKG

als-statistics

Version:

A powerful and lightweight JavaScript library for descriptive statistics, regression, clustering, outlier detection, and noise analysis using a flexible table/column architecture.

29 lines (25 loc) 1.25 kB
function filterColumns(columns, columnFilter) { const includeNames = [], excludeNames = [], regexPatterns = []; if (Array.isArray(columnFilter)) { // Разделяем фильтры columnFilter.forEach(filter => { if (typeof filter === 'number') includeNames.push(filter) else if (typeof filter === "string") { if (filter.startsWith("-")) excludeNames.push(filter.slice(1)); else includeNames.push(filter); } else if (filter instanceof RegExp) { regexPatterns.push(filter); } }); } const columnNames = Object.keys(columns); let filteredNames = columnNames; if (includeNames.length > 0) filteredNames = includeNames; // Если есть явные имена, берём только их else if (regexPatterns.length > 0) { // Если есть regex, фильтруем по ним filteredNames = columnNames.filter(name => regexPatterns.some(pattern => pattern.test(name)) ); } if (excludeNames.length > 0) filteredNames = filteredNames.filter(name => !excludeNames.includes(name)); // Применяем исключения return filteredNames; } module.exports = filterColumns