UNPKG

@gvray/eskit

Version:

A rich and colorful toolkit about typescript and javascript.

38 lines 1.6 kB
/** * Filters elements of an array or object based on a callback function. * 根据回调函数过滤数组或对象的元素。 * * @param collection - The array or object to filter / 要过滤的数组或对象 * @param callback - The function to call for each element / 为每个元素调用的函数 * @returns A new array or object with filtered elements / 包含过滤元素的新数组或对象 * * @example * ```typescript * // Array filtering * const numbers = [1, 2, 3, 4, 5] * const evenNumbers = filter(numbers, (num) => num % 2 === 0) * console.log(evenNumbers) // [2, 4] * * const users = [ * { name: 'Alice', age: 25 }, * { name: 'Bob', age: 17 }, * { name: 'Charlie', age: 30 } * ] * const adults = filter(users, (user) => user.age >= 18) * console.log(adults) // [{ name: 'Alice', age: 25 }, { name: 'Charlie', age: 30 }] * * // Object filtering * const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 } * const evenValues = filter(obj, (value) => value % 2 === 0) * console.log(evenValues) // { b: 2, d: 4 } * * const config = { debug: true, timeout: 5000, retries: 3, verbose: false } * const booleanSettings = filter(config, (value) => typeof value === 'boolean') * console.log(booleanSettings) // { debug: true, verbose: false } * ``` * * @since 1.0.0 */ declare const filter: <T extends Array<unknown> | Record<string, unknown>>(collection: T, callback: (value: T extends Array<infer U> ? U : T[keyof T], indexOrKey: T extends Array<unknown> ? number : keyof T, collection: T) => boolean) => T; export default filter; //# sourceMappingURL=filter.d.ts.map