Grammalecte  Check-in [7d93db4a3b]

Overview
Comment:[graphsell][js] ibdawg: fix sort in getSuggestions
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | graphspell
Files: files | file ages | folders
SHA3-256: 7d93db4a3b2de718d3f977f8dfad744412c1dbb3b368b534c5077d36e6ce507a
User & Date: olr on 2020-09-07 17:42:27
Other Links: manifest | tags
Context
2020-09-08
08:12
[graphspell][js] remove useless parameter and useless get/set check-in: e53fd4ae0e user: olr tags: trunk, graphspell
2020-09-07
17:42
[graphsell][js] ibdawg: fix sort in getSuggestions check-in: 7d93db4a3b user: olr tags: trunk, graphspell
17:41
[fr] ajustements check-in: 254188803f user: olr tags: trunk, fr
Changes

Modified graphspell-js/ibdawg.js from [25fa8fe973] to [027be60102].

55
56
57
58
59
60
61
62
63
64
65
66


67
68
69

70
71
72
73
74
75
76
                this.nDistLimit = Math.min(this.nDistLimit, this.nMinDist+1);
            }
        }
    }

    getSuggestions (nSuggLimit=10, nDistLimit=-1) {
        // return a list of suggestions
        let lRes = [];
        if (this.dSugg.get(0).length) {
            // we sort the better results with the original word
            let dDistTemp = new Map();
            lRes.forEach((sSugg) => { dDistTemp.set(sSugg, str_transform.distanceDamerauLevenshtein(this.sWord, sSugg)); });


            lRes = lRes.sort((sA, sB) => { return dDistTemp.get(sA) - dDistTemp.get(sB); });
            dDistTemp.clear();
        }

        for (let [nDist, lSugg] of this.dSugg.entries()) {
            if (nDist > this.nDistLimit) {
                break;
            }
            lRes.push(...lSugg);
            if (lRes.length > nSuggLimit) {
                break;







<
|

<
|
>
>
|
<

>







55
56
57
58
59
60
61

62
63

64
65
66
67

68
69
70
71
72
73
74
75
76
                this.nDistLimit = Math.min(this.nDistLimit, this.nMinDist+1);
            }
        }
    }

    getSuggestions (nSuggLimit=10, nDistLimit=-1) {
        // return a list of suggestions

        if (this.dSugg.get(0).length > 1) {
            // we sort the better results with the original word

            this.dSugg.set(0, [...this.dSugg.get(0)].sort((a, b) => { return str_transform.distanceDamerauLevenshtein(this.sWord, a) - str_transform.distanceDamerauLevenshtein(this.sWord, b); }));
        }
        else if (this.dSugg.get(1).length > 1) {
            this.dSugg.set(1, [...this.dSugg.get(1)].sort((a, b) => { return str_transform.distanceDamerauLevenshtein(this.sWord, a) - str_transform.distanceDamerauLevenshtein(this.sWord, b); }));

        }
        let lRes = [];
        for (let [nDist, lSugg] of this.dSugg.entries()) {
            if (nDist > this.nDistLimit) {
                break;
            }
            lRes.push(...lSugg);
            if (lRes.length > nSuggLimit) {
                break;