请问有人能帮我在ReactJs中对JSON数据进行排序吗?目前我的排序功能无法正常工作。如果我想根据标题进行排序,是否也是同样的方法呢?谢谢。
我尝试的代码如下:
componentDidMount()
{
fetch('https://jsonplaceholder.typicode.com/posts').then((res) => res.json())
.then((data) => {
data.sort(function (a, b) {
return a.userId> b.userId;
})
data.sort();
this.setState({data: data});
});
}
render() {
return (
<div>
<br/><br/>
<br/><br/>
< table className="table">
<th>User Id</th>
<th>Name</th>
<th>Address</th>
<th>Action</th>
<tbody>{this.state.data.map(function (item, key) {
return (
<tr key={key}>
<td>{item.userId}</td>
<td>{item.id}</td>
<td>{item.title}</td>
<td>{item.body}</td>
</tr>
)
})}</tbody>
</table>
</div>
)
}
data.sort()
(没有自定义排序函数逻辑)会覆盖初始的排序逻辑,这就是为什么你自定义的比较逻辑a.userID > b.userId
没有达到预期结果的原因。@gaiazov在下面的答案中提到了按标题排序的问题,使用a.title - b.title
可以解决。 - Tobiah Rex