fil-obj
Version:
Filter an object by keys or a function.
46 lines (45 loc) • 1.02 kB
JavaScript
// source/main.ts
function filter(object, fn) {
for (const key in object)
if (!fn(key, object[key], object)) delete object[key];
}
function toFiltered(object, fn) {
const result = {};
for (const key in object)
if (fn(key, object[key], object))
result[key] = object[key];
return result;
}
function keepKeys(object, keys) {
const list = new Set(keys);
for (const key in object)
if (!list.has(key)) delete object[key];
}
function includeKeys(object, keys) {
const result = {};
for (const key of keys)
if (key in object)
result[key] = object[key];
return result;
}
function dropKeys(object, keys) {
const list = new Set(keys);
for (const key in object)
if (list.has(key)) delete object[key];
}
function excludeKeys(object, keys) {
const result = {};
const list = new Set(keys);
for (const key in object)
if (!list.has(key))
result[key] = object[key];
return result;
}
export {
dropKeys,
excludeKeys,
filter,
includeKeys,
keepKeys,
toFiltered
};