匹配项/索引返回整个字符串

时间:2018-07-30 04:39:46

标签: javascript fuse.js

使用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
  }
]

我期望它只是返回字符串的 matched 部分,就像这样:

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

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

谢谢!

P.S。有人可以让我知道我是否应该在这样的库问题中包含“ javascript”标记?

0 个答案:

没有答案