@nixat/filter
v0.1.1
Published
A utility function to filter collections with enhanced predicate support
Readme
@nixat/filter
A utility function to filter collections with enhanced predicate support.
Installation
# Using npm
npm install @nixat/filter
# Using yarn
yarn add @nixat/filter
# Using pnpm
pnpm add @nixat/filterUsage
import { filter, filterDeep } from '@nixat/filter';
const users = [
{ id: 1, name: 'John', active: true, age: 30 },
{ id: 2, name: 'Jane', active: false, age: 25 },
{ id: 3, name: 'Bob', active: true, age: 40 }
];
// Using a predicate function
filter(users, user => user.age > 25);
// => [{ id: 1, name: 'John', active: true, age: 30 }, { id: 3, name: 'Bob', active: true, age: 40 }]
// Using a property matcher object
filter(users, { active: true });
// => [{ id: 1, name: 'John', active: true, age: 30 }, { id: 3, name: 'Bob', active: true, age: 40 }]
// Using a property path and value
filter(users, 'active', true);
// => [{ id: 1, name: 'John', active: true, age: 30 }, { id: 3, name: 'Bob', active: true, age: 40 }]
// Working with nested objects
const nestedUsers = [
{ id: 1, profile: { name: 'John', active: true } },
{ id: 2, profile: { name: 'Jane', active: false } },
{ id: 3, profile: { name: 'Bob', active: true } }
];
// Using dot notation
filterDeep(nestedUsers, 'profile.active', true);
// => [{ id: 1, profile: { name: 'John', active: true } }, { id: 3, profile: { name: 'Bob', active: true } }]
// Using array path
filterDeep(nestedUsers, ['profile', 'name'], 'Jane');
// => [{ id: 2, profile: { name: 'Jane', active: false } }]API
filter(collection, predicate)
Filters a collection based on a predicate function, property matcher, or property-value pairs.
Parameters
collection- The array to filterpredicate- A function, property matcher object, or property pathvalue- Optional value to compare against if predicate is a property path
Returns
A new filtered array.
filterDeep(collection, path, value)
Filters a collection based on a deep property path and value.
Parameters
collection- The array to filterpath- The property path (dot notation or array)value- The value to compare against
Returns
A new filtered array.
License
MIT
