在几乎所有情况下,我都发现'返回的索引几乎包含整个字符串。
对于一个非常简单的示例,如果转到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
}
]
我期望它只是返回字符串的 matched 部分,就像这样:
"matches": [
{
"indices": [
[
14,
23
]
],
"value": "Man's War",
"key": "title",
"arrayIndex": 0
}
]
我已经在自己的应用程序中尝试过,并且在大型数据集中看到了相似的结果。匹配本身非常准确-只是通过matchs [i] .indices突出显示是错误的。它似乎总是将匹配到匹配的字符串,有时甚至远不止于此。我要疯了吗?还是使用fuse.js无法做到这一点?
谢谢!
P.S。有人可以让我知道我是否应该在这样的库问题中包含“ javascript”标记?