@tidyjs/tidy
Version:
Tidy up your data with JavaScript, inspired by dplyr and the tidyverse
23 lines (21 loc) • 598 B
JavaScript
function nDistinct(key, options = {}) {
const keyFn = typeof key === "function" ? key : (d) => d[key];
return (items) => {
const uniques = new Map();
let count = 0;
let i = 0;
for (const item of items) {
const value = keyFn(item, i++, items);
if (!uniques.has(value)) {
if (!options.includeUndefined && value === void 0 || options.includeNull === false && value === null) {
continue;
}
count += 1;
uniques.set(value, true);
}
}
return count;
};
}
export { nDistinct };
//# sourceMappingURL=nDistinct.js.map