【发布时间】:2020-07-02 21:51:46
【问题描述】:
我正在尝试在 react.js 的数组中添加一个元素
this.state.chat_list.map(elem => {
if (
elem.name
.toLowerCase()
.indexOf(this.props.searching_username.toLowerCase()) !== -1
) {
this.setState(
{ searched_chat_list: [...this.state.searched_chat_list, elem.name] },
() => {
console.log(this.state.searched_chat_list);
}
);
}
});
这是代码。
问题是它只添加了结果中的最后一个元素
假设我有a,ab,c,d,aad,如果我使用a 搜索,它将只返回aad 而不是a,ab,aad。
我该如何解决这个问题?
【问题讨论】:
-
你把 this.state.searched_chat_list 初始化成什么?
-
使用
includesconst list = data.filter(item => item.includes(letter)); -
您应该更清楚地表述问题。你的问题是:“如何过滤所有以'a'开头的项目?”如果是 - 答案是
data.filter(a => /a/g.test(a)) -
你为什么使用地图?你在映射什么?
标签: javascript reactjs typescript react-typescript