【问题标题】:Fuse.js to search in array with dot in keysFuse.js 在数组中搜索键中的点
【发布时间】:2020-06-17 09:52:21
【问题描述】:

我在 Rest 端点上使用 fetch,它给了我一个对象数组。数组中的所有键都有一个点。例如:{test.name:“test”}。我必须不断获取新的响应以获取更改,因此虽然我可以删除或替换点,但这每次都需要一些时间/资源。有没有办法在 fuse.js 中使用带点的键?

我尝试了一些变种但没有运气。

const fuse = new Fuse(this.state.test, {
    keys: ['test.name']
});

ps。我无法将 Rest 中的键更改为外部键

【问题讨论】:

  • 如果有人遇到类似问题,我仍然无法找到将其与 fuse 一起使用的方法,但解决方法是替换点,例如:key.replace(".", "_")。我使用它是因为我有一个对象列表function transformKeys(obj) { return Object.keys(obj).reduce(function(o, prop) { var value = obj[prop]; var newProp = prop.replace('.', '_'); o[newProp] = value; return o; }, {}); }

标签: javascript fuse.js


【解决方案1】:

从 Fuse.js v6.3.0 开始,您可以通过点 (.) 数组表示法提供路径来搜索嵌套值。因此,如果您的密钥中已经有一个点,您可以将其包装在一个数组中:

const fuse = new Fuse(this.state.test, {
  // `test.name` is the actual key, so wrap it in an array
  keys: [['test.name']]
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 2011-09-01
    • 2023-04-09
    • 2011-04-27
    • 2019-04-16
    相关资源
    最近更新 更多