在几乎所有情况下,我发现返回的 ' 索引几乎包含整个字符串。
举一个非常简单的例子,如果你去 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”标签吗?