javascript - 过滤字符串数组并返回初始状态
问题描述
我有字符串数组,由于输入值,我需要过滤这个数组。我通过过滤器功能过滤它,但是当我清除输入时,数组保持过滤状态。如何获得初始数组?
filterCoins = (e) => {
let updatedList = this.state.data;
updatedList = updatedList.filter(function(item){
return item.toLowerCase().search(
e.target.value.toLowerCase()) !== -1;
});
this.setState({data: updatedList});
};
解决方案
解决方案取决于您如何获取初始数据。
如果它来自props
,最好将其state
用于填充filteredList
。
updatedList = this.props.data.filter(function(item){
return item.toLowerCase().search(
e.target.value.toLowerCase()) !== -1;
});
如果它是自包含状态组件,则使用类变量this.data
来存储初始数据过滤搜索到的项目this.data
;
updatedList = this.data.filter(function(item){
return item.toLowerCase().search(
e.target.value.toLowerCase()) !== -1;
});
this.setState({data: updatedList});
所以建议总是从原始列表中过滤出来。
推荐阅读
- laravel - SQLSTATE [42S02]:未找到基表或视图:1146 表 'seaurchin.availableroom' 不存在 (42S02)
- python - 带有keras的卷积神经网络给出错误,UnboundLocalError:分配前引用的局部变量'a'
- android - 如何在单击按钮时获得 Recyclerview 的所有值?
- c++ - 用于 Ubuntu 的 Sublime Text 3 构建系统
- python - google colab 上的 python train.py 会在短时间内停止并仅输出一个检查点
- r - 列表:名字总是被引用
- java - 没有Jackson实现类的接口类型的POJO反序列化属性
- java - 如何使用 Telegram 机器人获取上一条消息的文本?
- php - 带 cookie 的 Apache 负载均衡器,在 PHP 中更改 ROUTEID / 粘性 cookie
- python - 在python烧瓶中使用游标对postgres查询进行分页