反应 - 重新排序JSON数据

时间:2017-08-29 00:01:31

标签: javascript json reactjs

我正在制作一个简单的应用程序,用于从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.movi​​es中,但是在函数结束时会更改。是保留原始订单状态的最佳选择吗?

1 个答案:

答案 0 :(得分:0)

显而易见的选择是按照您提到的原始顺序保留副本,或添加一些记录原始订单的字段(例如" id")。

如果您知道TMDb最初如何订购数据,您可以恢复该订单而无需添加额外字段。另一方面,如果初始顺序是任意的,则考虑从开头排序数据,如@Rienk suggested