【发布时间】:2021-08-09 08:21:27
【问题描述】:
我在这里有一个可用的 CodePen 演示:https://codepen.io/JosephAllen/pen/vYmQpWL?editors=0010
这个演示:
- 从 API 获取用户
- 根据“点”属性对列表进行排序
- 然后使用索引显示排序列表作为“排名”。换句话说,如果您的索引为零,那么您就是第一名。
有一个用于搜索和过滤列表的输入字段,但过滤数组会为每个用户创建一个新索引——这破坏了排名的整个想法。
如何在不为用户创建新索引的情况下保持排名和搜索功能?
如果我是 API 的作者,我只会将排名作为属性包含在内,但我不是。
我的获取函数:
getUsers() {
fetch(`https://trafficthinktank.com/wp-json/mjtw/v1/community`)
.then((res) => res.json())
.then((data) => {
this.isLoading = false;
this.users = data.sort((a, b) => b.points - a.points);
// this.users = this.users.map(user => ({ visible: true, ...user }));
console.log(this.users);
});
0;
}
我的过滤功能:
get filteredUsers() {
if (this.search === "") {
return this.users;
}
return this.users.filter((item) => {
return item.name.toLowerCase().includes(this.search.toLowerCase());
});
}
【问题讨论】:
标签: javascript fetch codepen alpine.js