diff options
Diffstat (limited to 'ext/mixed/js')
| -rw-r--r-- | ext/mixed/js/dictionary-data-util.js | 30 | 
1 files changed, 28 insertions, 2 deletions
| diff --git a/ext/mixed/js/dictionary-data-util.js b/ext/mixed/js/dictionary-data-util.js index c049d591..8d8772fe 100644 --- a/ext/mixed/js/dictionary-data-util.js +++ b/ext/mixed/js/dictionary-data-util.js @@ -52,8 +52,8 @@ class DictionaryDataUtil {                  const exclusiveExpressions = [];                  const exclusiveReadings = [];                  const resultExpressions = result.expressions; -                if (!areSetsEqual(resultExpressions, allExpressions)) { -                    exclusiveExpressions.push(...getSetIntersection(resultExpressions, allExpressions)); +                if (!this._areSetsEqual(resultExpressions, allExpressions)) { +                    exclusiveExpressions.push(...this._getSetIntersection(resultExpressions, allExpressions));                  }                  if (multipleReadings) {                      exclusiveReadings.push(result.reading); @@ -71,6 +71,8 @@ class DictionaryDataUtil {          return results2;      } +    // Private +      static _findExistingPitchAccentInfo(reading, position, tags, pitchAccentInfoList) {          for (const pitchInfo of pitchAccentInfoList) {              if ( @@ -98,4 +100,28 @@ class DictionaryDataUtil {          return true;      } + +    static _areSetsEqual(set1, set2) { +        if (set1.size !== set2.size) { +            return false; +        } + +        for (const value of set1) { +            if (!set2.has(value)) { +                return false; +            } +        } + +        return true; +    } + +    static _getSetIntersection(set1, set2) { +        const result = []; +        for (const value of set1) { +            if (set2.has(value)) { +                result.push(value); +            } +        } +        return result; +    }  } |