@@ -57,21 +57,19 @@ } } getSuggestions (nSuggLimit=10) { // return a list of suggestions - if (this.dSugg.get(0).length > 1) { - // we sort the better results with the original word - 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.get(1).sort((a, b) => { return str_transform.distanceDamerauLevenshtein(this.sWord, a) - str_transform.distanceDamerauLevenshtein(this.sWord, b); }); - } let lRes = []; + let bFirstListSorted = false; for (let [nDist, lSugg] of this.dSugg.entries()) { if (nDist > this.nDistLimit) { break; + } + if (!bFirstListSorted && lSugg.length > 1) { + lRes.sort((a, b) => { return str_transform.distanceDamerauLevenshtein(this.sWord, a) - str_transform.distanceDamerauLevenshtein(this.sWord, b); }); + bFirstListSorted = true; } lRes.push(...lSugg); if (lRes.length > nSuggLimit) { break; }