Я использую fuse.js для нечеткого поиска в наборе данных json, который выглядит примерно так:

const dataSet = [
    {
      title: "a list",
      cards: [
        {
          title: "a card",
        },
        {
          title: "another card",
        },
        {
          title: "a third card",
        },
      ],
    },
...
];

Когда я ищу название карты:

const fuse = new Fuse(dataSet, { keys: ['cards.title']})
console.log(fuse.search("a third card"))

Список, содержащий карту, возвращается

{
   title: "a list",
   cards: [
      {id: 1, title: "a card"},
      ...
   ]
}

Я хочу, чтобы данные возвращали конкретную карту с названием «третья карта». Как я могу это сделать?

Я просмотрел документы и нашел вариант getFn, который может помочь , но я не мог заставить его работать. Я также знаю, что могу добиться этого, сглаживая свой объект, но я не хочу этого делать, поскольку это добавляет сложности для моего варианта использования.

0
Ibraheem Ahmed 23 Июн 2020 в 23:15

1 ответ

Лучший ответ

Похоже, что вы могли бы сделать, это установить для параметра includeMatches значение true. Это также даст вам точный элемент, который был сопоставлен во вложенном подмассиве.

0
krisk 24 Июн 2020 в 18:22