UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

37 lines 1.52 kB
import { get1stDigitFromString } from "./get1stDigitFromString"; import { GetFirstWord, GetLastWord } from "./getWords"; export const LetterGroups5 = ['abcde', 'fghijk', 'lmnop', 'qrst', 'uvwxyz']; export const LetterGroups5Label = ['A-E', 'F-K', 'L-P', 'Q-T', 'U-Z']; /** * Added for https://github.com/mikezimm/drilldown7/issues/140, Thanks McDKirra for the idea! BM * https://github.com/mikezimm/drilldown7/issues/361 - Fixed * @param str * @param firstOrLast >> IMPORTANT: SHOULD BE Converted to Lower Case * @returns */ export function getLetterBuckets(str, firstOrLast) { let bucket = 'Unknown'; // 2024-09-22: Added as '' to pass typing const groups = get1stDigitFromString(firstOrLast); if (!str || groups !== '5') { return bucket; } else { let letter = ''; if (firstOrLast === 'FirstInFirst5Buckets'.toLowerCase()) { letter = GetFirstWord(str.trim(), false, true, false); } else if (firstOrLast === 'FirstInLast5Buckets'.toLowerCase()) { letter = GetLastWord(str.trim(), false, true, false); } const UseLetters = groups === '5' ? LetterGroups5 : []; const UseLabels = groups === '5' ? LetterGroups5Label : []; UseLetters.map((group, index) => { if (group.indexOf(letter.toLowerCase()) > -1) { bucket = UseLabels[index]; } }); return bucket; } } //# sourceMappingURL=getLetterBuckets.js.map