UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

26 lines 2.9 kB
/** * Determine if an object exists in an array * * @param object - The object to look for in the array * @param array - The array to search through * @param comparator - The function to determine what object values to compare * @returns True if a match was found * * @example * const arr = [{id: 1}, {id: 2}, {id: 3}]; * const comparator = (v) => v.id; * arrayContainsObject({id: 2}, array, comparator); // Returns: true */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export function arrayContainsObject(object, array, comparator) { var hasDuplicate = false; // eslint-disable-next-line @typescript-eslint/prefer-for-of for (var i = 0; i < array.length; i++) { if (comparator(array[i]) === comparator(object)) { hasDuplicate = true; break; } } return hasDuplicate; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktY29udGFpbnMtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy91dGlsaXRpZXMvIiwic291cmNlcyI6WyJhcnJheS1jb250YWlucy1vYmplY3QvYXJyYXktY29udGFpbnMtb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMkIsRUFBRSxLQUFZLEVBQUUsVUFBa0M7SUFDL0csSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRXpCLDREQUE0RDtJQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0MsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNwQixNQUFNO1NBQ1A7S0FDRjtJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgZXhpc3RzIGluIGFuIGFycmF5XG4gKlxuICogQHBhcmFtIG9iamVjdCAtIFRoZSBvYmplY3QgdG8gbG9vayBmb3IgaW4gdGhlIGFycmF5XG4gKiBAcGFyYW0gYXJyYXkgLSBUaGUgYXJyYXkgdG8gc2VhcmNoIHRocm91Z2hcbiAqIEBwYXJhbSBjb21wYXJhdG9yIC0gVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGF0IG9iamVjdCB2YWx1ZXMgdG8gY29tcGFyZVxuICogQHJldHVybnMgVHJ1ZSBpZiBhIG1hdGNoIHdhcyBmb3VuZFxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBhcnIgPSBbe2lkOiAxfSwge2lkOiAyfSwge2lkOiAzfV07XG4gKiBjb25zdCBjb21wYXJhdG9yID0gKHYpID0+IHYuaWQ7XG4gKiBhcnJheUNvbnRhaW5zT2JqZWN0KHtpZDogMn0sIGFycmF5LCBjb21wYXJhdG9yKTsgLy8gUmV0dXJuczogdHJ1ZVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5Q29udGFpbnNPYmplY3Qob2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBhcnJheTogYW55W10sIGNvbXBhcmF0b3I6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcpOiBib29sZWFuIHtcbiAgbGV0IGhhc0R1cGxpY2F0ZSA9IGZhbHNlO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxuICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNvbXBhcmF0b3IoYXJyYXlbaV0pID09PSBjb21wYXJhdG9yKG9iamVjdCkpIHtcbiAgICAgIGhhc0R1cGxpY2F0ZSA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaGFzRHVwbGljYXRlO1xufVxuIl19