<commit_before>export const uniqBy = <T>(array: T[], propertyName: string): T[] => {
	const names: any[] = [];

	return array.filter((object: T) => {
		if (names.includes(object[propertyName])) {
			return false;
		}

		names.push(object[propertyName]);

		return true;
	});
};

export const uniqByLast = <T>(array: T[], propertyName: string): T[] =>
	uniqBy([...array].reverse(), propertyName).reverse();
<commit_msg>uniq-by.ts - SF - use more semantic variable names<commit_after>export const uniqBy = <T>(arr: T[], keyPropertyName: string): T[] => {
	const keyProperties: any[] = [];

	return arr.filter((object: T) => {
		if (keyProperties.includes(object[keyPropertyName])) {
			return false;
		}

		keyProperties.push(object[keyPropertyName]);

		return true;
	});
};

export const uniqByLast = <T>(arr: T[], keyPropertyName: string): T[] =>
	uniqBy([...arr].reverse(), keyPropertyName).reverse();

{'fraction_non_alphanumeric': 0.19469026548672566, 'fraction_numerical': 0.0, 'mean_word_length': 4.838709677419355, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '725728', 'n_tokens_mistral': 313, 'n_tokens_neox': 297, 'n_words': 68}