es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
28 lines (27 loc) • 963 B
JavaScript
//#region src/set/find.ts
/**
* Finds the first element in a Set for which the predicate function returns true.
*
* This function iterates through the elements of the Set and returns the first
* element for which the predicate function returns true. If no element satisfies the predicate,
* it returns undefined.
*
* @template T - The type of elements in the Set.
* @param set - The Set to search.
* @param doesMatch - A predicate function that tests each element.
* @returns The first element that satisfies the predicate, or undefined if none found.
*
* @example
* const set = new Set([
* { name: 'apple', quantity: 10 },
* { name: 'banana', quantity: 5 },
* { name: 'grape', quantity: 15 }
* ]);
* const result = find(set, (value) => value.quantity > 10);
* // result will be: { name: 'grape', quantity: 15 }
*/
function find(set, doesMatch) {
for (const value of set) if (doesMatch(value, value, set)) return value;
}
//#endregion
exports.find = find;