From fdd452b5db0bfa94d236982a85cb61c48bf9018c Mon Sep 17 00:00:00 2001 From: MillenniumEarl Date: Thu, 3 Dec 2020 12:35:50 +0100 Subject: [PATCH] Compare with uppercase strings --- app/scripts/classes/prefix-parser.js | 50 +++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/app/scripts/classes/prefix-parser.js b/app/scripts/classes/prefix-parser.js index 036f5a8..ca81bfe 100644 --- a/app/scripts/classes/prefix-parser.js +++ b/app/scripts/classes/prefix-parser.js @@ -21,6 +21,40 @@ class PrefixParser { _getKeyByValue(object, value) { return Object.keys(object).find(key => object[key] === value); } + + /** + * @private + * Makes an array of strings uppercase. + * @param {String[]} a + * @returns {String[]} + */ + _toUpperCaseArray(a) { + // If the array is empty, return + if (a.length === 0) return []; + + /** + * Makes a string uppercase. + * @param {String} s + * @returns {String} + */ + function toUpper(s) { + return s.toUpperCase(); + } + return a.map(toUpper); + } + + /** + * @private + * Check if `dict` contains `value` as a value. + * @param {Object.} dict + * @param {String} value + */ + _valueInDict(dict, value) { + const array = Object.values(dict); + const upperArr = this._toUpperCaseArray(array); + const element = value.toUpperCase(); + return upperArr.includes(element); + } //#endregion Private methods /** @@ -33,10 +67,10 @@ class PrefixParser { for(const p of prefixes) { // Check what dict contains the value let dict = null; - if(Object.values(shared.statuses).includes(p)) dict = shared.statuses; - else if (Object.values(shared.engines).includes(p)) dict = shared.engines; - else if (Object.values(shared.tags).includes(p)) dict = shared.tags; - else if (Object.values(shared.others).includes(p)) dict = shared.others; + if (this._valueInDict(shared.statuses, p)) dict = shared.statuses; + else if (this._valueInDict(shared.engines, p)) dict = shared.engines; + else if (this._valueInDict(shared.tags, p)) dict = shared.tags; + else if (this._valueInDict(shared.others, p)) dict = shared.others; else continue; // Extract the key from the dict @@ -56,10 +90,10 @@ class PrefixParser { for(const id of ids) { // Check what dict contains the key let dict = null; - if (Object.keys(shared.statuses).includes(id)) dict = shared.statuses; - else if (Object.keys(shared.engines).includes(id)) dict = shared.engines; - else if (Object.keys(shared.tags).includes(id)) dict = shared.tags; - else if (Object.keys(shared.others).includes(id)) dict = shared.others; + if (Object.keys(shared.statuses).includes(id.toString())) dict = shared.statuses; + else if (Object.keys(shared.engines).includes(id.toString())) dict = shared.engines; + else if (Object.keys(shared.tags).includes(id.toString())) dict = shared.tags; + else if (Object.keys(shared.others).includes(id.toString())) dict = shared.others; else continue; // Check if the key exists in the dict