- fix a bug that add a | when the keyword has a trailing whitespace

- the function cleanKeywords() substitute organizeKeywords() (better code)
This commit is contained in:
Massimo Maggioni 2021-12-29 22:08:03 +01:00
parent a4ac23c124
commit ec45bfaea4

View File

@ -55,37 +55,27 @@ class Search {
} }
/// clean input keywords list /// clean input keywords list
private reorganizeKeywords(keywords: string[]) { private cleanKeywords(keywords: string[]) {
let tmp: string[] = []; for (let i=0; i < keywords.length; i++){
/// do the search only on keywords length >= 2 /// remove the white spaces
for (let i=0; i < keywords.length; i++){ keywords[i]=keywords[i].trim();
if (keywords[i].length === 1) keywords.splice(i,1); /// do the search only on keywords length >= 2
} if (keywords[i].length <= 1) {
/// Sort keywords from short to long keywords.splice(i,1);
keywords.sort((a, b) => { i--;
return b.length - a.length }
});
/// remove the keywords contained in other keywords
for (let i = 0; i < keywords.length; i++) {
for (let j = 0; j < keywords.length; j++) {
if (i !== j) {
if (keywords[j].includes(keywords[i])) {
keywords.splice(i,1);
i=j=0;
}
}
} }
return keywords;
} }
return keywords;
}
private async searchKeywords(keywords: string[]) { private async searchKeywords(keywords: string[]) {
const rawData = await this.getData(); const rawData = await this.getData();
let results: pageData[] = []; let results: pageData[] = [];
keywords = this.reorganizeKeywords(keywords);
if (keywords.length === 0) return; if (keywords.length === 0) return;
keywords = this.cleanKeywords(keywords);
/// from a b to a|b for regexp /// from a b to a|b for regexp
let k = ""; let k = "";