我想为我的数据数组创建一个搜索过滤器。它具有多个对象和键,例如:
[
{
"fname": "Jayne",
"lname": "Washington",
"email": "jaynewashington@exposa.com",
"gender": "female"
},
{
"fname": "Peterson",
"lname": "Dalton",
"email": "petersondalton@exposa.com",
"gender": "male"
},
{
"fname": "Velazquez",
"lname": "Calderon",
"email": "velazquezcalderon@exposa.com",
"gender": "male"
},
{
"fname": "Norman",
"lname": "Reed",
"email": "normanreed@exposa.com",
"gender": "male"
}
]
Run Code Online (Sandbox Code Playgroud)
我想要搜索过滤器搜索此数组上的任何地方。例如:当我输入框时,我想搜索对象内的任何地方。像fname,lname,email,gender
我该怎么做?请帮我
如果我只想限制姓和名的搜索,该怎么做?
最近,我一直在尝试在 React 应用程序中使用 rxjs 提取 API 请求,这是我提出的解决方案。
您对此有何看法?
有什么我应该遵循的良好做法吗?
如果有什么好的解决方案请告诉我。
import axios from 'axios';
import { Observable } from 'rxjs';
import './App.css';
export class App extends Component {
state = {
users: []
};
componentDidMount() {
const fetchUserSubscription$ = this.fetchUsersObservables();
fetchUserSubscription$.subscribe(data =>
this.setState({
users: data
})
);
}
fetchUsers = async () => {
const response = await axios.get(
'https://jsonplaceholder.typicode.com/users'
);
const data = response.data;
this.setState({ users: data });
};
fetchUsersObservables = () =>
new Observable(observer => {
axios
.get('https://jsonplaceholder.typicode.com/users') …Run Code Online (Sandbox Code Playgroud) 当 Javascript 更新一个对象时,就像下面这样。
const data = {
a: 1,
b: 3,
c: 4
}
const update = (summary) => {
data[summary] += 1;
console.log(data);
}
update('a');
Run Code Online (Sandbox Code Playgroud)
我用 Typescript 尝试了同样的事情,但它不起作用,因为我知道我做错了什么,有人可以指出错误以及如何解决问题。
interface Summary {
a: number,
b: number,
c: number
}
const data: Summary = {
a: 1,
b: 3,
c: 4
}
const updateData = (summaryType: string) => {
data[summaryType] += 1 // Error
}
Run Code Online (Sandbox Code Playgroud)
错误是 -> 元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“Summary”。在“Summary”类型上找不到带有“string”类型参数的索引签名。(7053)