node.js - 如何在过滤器方法中定义两种运行代码的方式
问题描述
我在获取 API 的反应中部署了过滤器搜索,指示在搜索输入中输入的名称,但我想以两种方式之一进行过滤。
- 1 表示名称的方式,
- 2way 通过输入的符号表示
我不知道如何在 filter 方法中定义coin.symbol
const filterCoins = currentCoins.filter(coin =>
coin.name.toLowerCase().includes(search.toLowerCase())
);
一般来说,我想在coin.name旁边的 filter 方法中定义下面的行代码,当用户搜索符号或名称时显示结果。
coin.symbol.toLowerCase().includes(search.toLowerCase())
解决方案
返回两个条件的结果。
const filterCoins = currentCoins.filter(({ name, symbol }) =>
name.toLowerCase().includes(search.toLowerCase()) ||
symbol.toLowerCase().includes(search.toLowerCase())
);
或者更简洁和DRY,将两个值放入一个数组中,以检查其中至少一个满足条件测试。
const filterCoins = currentCoins.filter(({ name, symbol }) =>
[name, symbol].some(el => el.toLowerCase().includes(search.toLowerCase()))
);
推荐阅读
- javascript - 在异步中使用while(true)?
- swift - NavigationLink 页面在父视图更新时自动关闭
- google-maps - 谷歌地图 WebGL 支持
- sql - prisma 可以实现与 graphql 相同的功能吗?
- angular9 - 如何用某个数字(而不是零)填充输入?
- laravel - 如何从 nuxt 前端的 laravel api 获取 csrf 令牌
- python - 如何使用 API 的 Flask-Sessions 管理 spotipy 会话?
- google-bigquery - 数据流#bigquery 的最佳实践
- python - 如何解决“django.db.utils.OperationalError:fe_sendauth:没有提供密码”?
- postgresql - 为什么我的一些 kubernetes 节点无法连接到我的 postgres 集群而其他节点成功?