Uso

Array de objetos

Búsqueda en un array de objetos

Buscar elementos en una lista de objetos

Por propiedad directa

Si quieres filtrar por una clave directa de un objeto, puedes usar la opción key.

index.ts
const lista = [
  { name: "volvo", year: 2020 },
  { name: "seat", year: 2019 },
  { name: "mercedes", year: 2021 },
]
 
const fuzzySearch = fuzzy(lista, {
  key: 'name',
})

Por propiedad anidada

Si quieres filtrar por una propiedad anidada, usa la opción getKey.

index.ts
const lista = [
  { name: "volvo", year: 2020, owner: { fullname: "John Doe" } },
  { name: "seat", year: 2019, owner: { fullname: "Jane Doe" } },
  { name: "mercedes", year: 2021, owner: { fullname: "John Smith" } },
]
 
const fuzzySearch = fuzzy(lista, {
  getKey: (item) => [item.owner.fullname],
})

Por múltiples propiedades

Puedes filtrar por varias propiedades combinadas con getKey.

index.ts
const lista = [
  { name: "volvo", year: 2020, owner: { fullname: "John Doe" } },
  { name: "seat", year: 2019, owner: { fullname: "Jane Doe" } },
  { name: "mercedes", year: 2021, owner: { fullname: "John Smith" } },
]
 
const fuzzySearch = fuzzy(lista, {
  getKey: (item) => [item.name, item.owner.fullname],
})

Para más ejemplos, consulta la sección de Ejemplos.

Referencias

Opciones

Las propiedades de fuzzy son las siguientes:

PropTypeDefault
key?
keyof T
undefined
getKey?
(item: T) => (string | null)[]
undefined
debug?
boolean
false
limit?
number
Number.MAX_SAFE_INTEGER
maxScore?
number
100
mapResult?
MapResult<T, U>
(result) => result.item

Respuesta

El resultado será un objeto con las siguientes propiedades:

PropTypeDefault
results
Result<T>[]
""
length
number
0
time
number
0
normalizedQuery
string
""
hasExactMatch
boolean
false
bestMatch
Result<T>
null
hasResults
boolean
false

Resultados

PropTypeDefault
item
NonNullable<T>
null
score
number
0
matches
Matches
null
Edit on GitHub

Last updated on

On this page