gpt4 book ai didi

javascript - lambda : filter by "fuzzy search"

转载 作者:行者123 更新时间:2023-12-03 02:06:55 25 4
gpt4 key购买 nike

我有 IMDb 的 100 部最佳电影列表。鉴于标题,我试图通过它找到一种“模糊搜索”的方法。即,如果您输入“shaw”,结果将显示“肖申克的救赎”。如果未输入任何内容(即 search 是空字符串),则不会过滤任何电影。

我的选择器如下:

export const selectMovies = createSelector(
getMovies,
getQueryParams,
(movies, { search = '' }) => R.filter(
R.propSatisfies(R.contains(search), 'title'),
movies
),
)

其中 getMovies 是一个返回 Movie[] 的函数,而 getQueryParams 返回一个具有键 search< 的对象 带有字符串值。

现在,虽然我可以按标题粗略过滤它,但它似乎有很多问题。例如,如果我输入“sha”,我就会得到肖申克的救赎。但是,如果我输入“shaw”,它不会得到肖申克的救赎。

有没有好的方法可以用 ramda 实现基于字符串的“模糊过滤器”?

最佳答案

这未经测试,但我认为你可以轻松编写:

const containsInsensitive = child => parent => contains(toLower(child), toLower(parent))

然后替换

R.contains(search)

containsInsensitive(search)

这应该就是所需要的。

关于javascript - lambda : filter by "fuzzy search",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com