4

使用http://fusejs.io/

在几乎所有情况下,我发现返回的 ' 索引几乎包含整个字符串。

举一个非常简单的例子,如果你去 fusejs.io,将第一个对象(在左侧的“步骤 1”中)更改为

 {
    title: "so ummmmmm Old Man's War is a book about a thing",
    author: {
      firstName: "John",
      lastName: "Scalzi"
    }
 },

然后勾选“包含匹配项”(在中间的“步骤 2”中)

生成的指数与大多数强指数相匹配,包括明显偏离的部分:

"matches": [
  {
    "indices": [
      [
        0,
        0
      ],
      [
        2,
        2
      ],
      [
        4,
        10
      ],
      [
        14,
        23
      ]
    ],
    "value": "so ummmmmm Old Man's War is a book about a thing",
    "key": "title",
    "arrayIndex": 0
  }
]

而我希望它只返回字符串的匹配部分,如下所示:

"matches": [
  {
    "indices": [
      [
        14,
        23
      ]
    ],
    "value": "Man's War",
    "key": "title",
    "arrayIndex": 0
  }
]

我已经在自己的应用程序中进行了尝试,并在大型数据集中看到了类似的结果。匹配本身非常准确 - 只是通过 matches[i].indices 突出显示是错误的。它似乎总是与匹配的字符串匹配,有时甚至远远超出。我要疯了吗?还是 fuse.js 无法做到这一点?

谢谢!

PS 有人可以让我知道我是否应该在这样的库问题中包含或不包含“javascript”标签吗?

4

0 回答 0