我正在制作一个简单的应用程序,用于从TMDb返回电影信息。我可以检索数据并按人气和平均投票来订购。
但是,我正在努力将其恢复为从TMDb检索到的原始订单。
这是我用来对数据进行排序的函数:
sortBy = (param) => {
let movies = [];
if(param.target.value === 'popularity'){
this.setState({sort:'popularity'})
movies = this.state.movies.sort((a,b) => {
return parseFloat(b.popularity) - parseFloat(a.popularity)
});
} else if (param.target.value === 'vote_average'){
this.setState({sort:'vote_average'})
movies = this.state.movies.sort((a,b) => {
return parseFloat(b.vote_average) - parseFloat(a.vote_average)
});
}
this.setState({
movies: movies
});
}
现在,如果我将'param.target.value'设置为'匹配',我想恢复数据的原始顺序。这存储在state.movies中,但是在函数结束时会更改。是保留原始订单状态的最佳选择吗?
答案 0 :(得分:0)
显而易见的选择是按照您提到的原始顺序保留副本,或添加一些记录原始订单的字段(例如" id")。
如果您知道TMDb最初如何订购数据,您可以恢复该订单而无需添加额外字段。另一方面,如果初始顺序是任意的,则考虑从开头排序数据,如@Rienk suggested。