【发布时间】:2026-02-18 04:45:01
【问题描述】:
我有一个这样的对象:
{
"data": [
{
"id": "1234",
"is_deleted": false,
"name": "Sarah"
},
{
"id": "3520",
"is_deleted": true,
"name": "Bobby"
},
{
"id": "3520",
"is_deleted": true,
"name": "Sartah"
}
]
}
反应代码
import React from 'react';
import { Input } from 'antd';
import { connect } from 'dva';
const Search = Input.Search;
@connect(({ rule, loading }) => ({
rule,
loading: loading.models.rule,
}))
export default class SearchBox extends React.Component {
constructor(props) {
super(props)
this.state = {
isListLoaded: false,
resultArr: {}
}
}
performSearch(value) {
for( var i = this.props.rule.data.list.length; i--; ) {
for (var key in this.props.rule.data.list[i]) {
this.setState({resultArr: this.state.resultArr.push(i)});
}
}
}
componentDidMount() {
if (!this.state.isListLoaded) {
const { dispatch } = this.props;
dispatch({
type: 'rule/fetch'
});
this.setState({ isListLoaded: true });
}
}
render() {
return (
<div>
<Search
placeholder="Search..."
onChange={(event) => this.performSearch(event.target.value)}
style={{ width: "250px", "margin-left": "20px"}}
/>
</div>
);
}
}
我的目标很简单:我想搜索这个对象,并且 返回包含关键字的整个数组。
示例:如果我搜索“Sar”,我应该得到 2 个对象:
{
"id": "1234",
"is_deleted": false,
"name": "Sarah"
},
{
"id": "3520",
"is_deleted": true,
"name": "Sartah"
}
问题是,我在尝试此代码时遇到错误。我确实在 SO 上搜索了此问题的先前解决方案,但我只能找到仅返回一个元素的示例。我想要的是获得 ALL 在 ANY 属性中包含关键字的结果(在本例中,我返回 2 个元素,而不仅仅是一个)
有什么想法吗?
【问题讨论】:
标签: javascript arrays reactjs