UNPKG

als-statistics

Version:

Modular JS statistics toolkit for Node.js and the browser: descriptive stats, correlations (Pearson/Spearman/Kendall), t-tests & ANOVA (Student/Welch), reliability (Cronbach’s alpha), regression (linear/logistic), clustering (DBSCAN/HDBSCAN), and table/co

17 lines (15 loc) 924 B
export function filterKeys(keys,filters) { if(filters.length === 0) return keys let include = new Set(), exclude = new Set(), regex = [],filtered = keys; filters.forEach(filter => { if (typeof filter === 'number') include.add(filter) else if (typeof filter === "string") { if (filter.startsWith("-")) exclude.add(filter.slice(1)); else include.add(filter); } else if (filter instanceof RegExp) regex.push(filter); }); if (include.size > 0) filtered = Array.from(include); // Если есть явные имена, берём только их else if (regex.length > 0) filtered = keys.filter(name => regex.some(pattern => pattern.test(name)) ); // Если есть regex, фильтруем по ним if (exclude.size > 0) filtered = filtered.filter(name => !exclude.has(name)); // Применяем исключения return filtered; }