@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
37 lines • 1.52 kB
JavaScript
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