fuse.js return 嵌套的特定项目 json object

fuse.js return specific item from nested json object

我正在使用 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"))

包含卡片的列表已 returned

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

我想要数据到 return 标题为“第三张卡片”的特定卡片。有什么办法可以做到这一点吗?

我查看了文档,发现了一个 getFn 选项可以完成这项工作,但我无法让它工作。我也知道我可以通过展平我的 object 来实现这一点,但我不想这样做,因为它会增加我的用例的复杂性。

听起来您可以将选项 includeMatches 设置为 true。这也会为您提供在嵌套子数组中匹配的确切项目。