From 59ff43a4d8a4be06fdc1ba21fca6793784f0b7e7 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Mon, 9 Dec 2024 01:09:31 +0900 Subject: [PATCH] Refactor getClosestMatch function to optimize Levenshtein distance calculation --- src/ts/parser.svelte.ts | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/src/ts/parser.svelte.ts b/src/ts/parser.svelte.ts index 0ca571b1..563737fc 100644 --- a/src/ts/parser.svelte.ts +++ b/src/ts/parser.svelte.ts @@ -380,38 +380,8 @@ function getClosestMatch(name:string, assetPaths:{[key:string]:{path:string, ext return null } - const perf = performance.now() - - //Levenshtein distance, old with 2d array - const dest = (a:string, b:string) => { - let d:Int16Array[] = [] - - for(let i=0;i { + const dest = (a:string, b:string) => { const h = a.length + 1 const w = b.length + 1 let d = new Int16Array(h * w) @@ -449,7 +419,7 @@ function getClosestMatch(name:string, assetPaths:{[key:string]:{path:string, ext let closestDist = 999999 const trimmedName = trimmer(name) for(const key in assetPaths){ - const dist = dest2(trimmedName, trimmer(key)) + const dist = dest(trimmedName, trimmer(key)) if(dist < closestDist){ closest = key closestDist = dist