Anpassung

Anpassung des Verhaltens der Bibliothek.

Fuzzy-List-Optionen

Um das Suchverhalten anzupassen, geben Sie ein Optionsobjekt mit den folgenden Parametern an:

index.ts
const fuzzySearch = fuzzy(list, {
  key: "name", // Eigenschaft, in der gesucht werden soll
  getKey: (item) => [item.name, item.author.fullname], // Mehrere Eigenschaften durchsuchen
  debug: true, // Debugging aktivieren
  limit: 10, // Maximale Anzahl der Ergebnisse
  maxScore: 2.5, // Maximaler Score-Schwellenwert für Ergebnisse
  mapResult: (item) => item, // Ergebnisobjekt transformieren
});

key und getKey

Wenn der Datensatz aus Objekten besteht, verwenden Sie key oder getKey, um die zu durchsuchenden Eigenschaften anzugeben.

index.ts
type <> = (: string) => {
  : <>[];
  : number;
  : number;
  : string;
  : boolean;
  : <> | null;
  : boolean;
};
 
function <>(: [], ?: <>): <>;
 
const  = [
  { : "volvo", : 2020 },
  { : "seat", : 2019 },
  { : "mercedes", : 2021 },
  { : "audi", : 2022 },
  { : "bmw", : 2023 },
];
 
const  = (, {
  : "name"
});
 
const  = ("volv");
.();

Ebenso ermöglicht getKey die Suche über mehrere oder verschachtelte Eigenschaften.

index.ts
const  = [
  { : "volvo", : { : "John Doe" } },
  { : "seat", : { : "Jane Doe" } },
  { : "mercedes", : { : "John Smith" } },
];
 
const  = fuzzy(, {
  : () => [.owner.fullname, .name],
});

limit-Option

Begrenzt die Anzahl der zurückgegebenen Suchergebnisse. Nützlich für die Optimierung des UI-Renderings.

index.ts
const  = fuzzy(["volvo", "seat", "mercedes", "audi", "bmw"], {
  : 5,
});

Das Resultset enthält maximal 5 Einträge.

maxScore-Option

Filtert Ergebnisse nach Score, der die Entfernung von einer exakten Übereinstimmung darstellt.

index.ts
const  = fuzzy(["volvo", "seat", "mercedes", "audi", "bmw"], {
  : 2, // Ergebnisse mit einem Score über 2 ausschließen
});

Sortierverhalten

Wenn sowohl limit als auch maxScore verwendet werden, werden die Ergebnisse zuerst nach Score gefiltert und dann auf das limit gekürzt.

debug-Option

Aktiviert die Protokollierung von Suchausführungsdetails in der Konsole.

index.ts
const  = fuzzy(["volvo", "seat", "mercedes"], {
  : true,
});

mapResult-Option

Transformiert Ergebnisobjekte, bevor sie zurückgegeben werden.

index.ts
const  = fuzzy(["volvo", "seat", "mercedes", "audi", "bmw"], {
  : () => .toUpperCase(),
});
 
const  = ("volvo");
.(.results[0].item); // "VOLVO"

TypeScript-Generics

Die Bibliothek verwendet zwei Generics: eines für den Eingabetyp (Listeneinträge) und eines für den Ausgabetyp (Ergebniseinträge). Wenn mapResult verwendet wird, passt sich der Ausgabetyp entsprechend an.

index.ts
function <,  = >(: [], ?: <, >): <>;
Edit on GitHub

Last updated on

On this page