React - 重新排序 JSON 数据

Posted

技术标签:

【中文标题】React - 重新排序 JSON 数据【英文标题】:React - reorder JSON data 【发布时间】:2018-02-06 07:20:35 【问题描述】:

我正在制作一个简单的应用程序,用于从 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】:

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

如果您知道 TMDb 最初对数据的排序方式,则可以恢复该顺序,而无需添加额外的字段。另一方面,如果初始顺序是任意的,请考虑像@Rienk suggested 那样从头开始对数据进行排序。

【讨论】:

以上是关于React - 重新排序 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章

React JS - 这个函数如何删除 JSON 数据?

React 数据改变后页面没有重新渲染

JSON数据Key排序

Swift 2.0 - 按子数组重新排列 JSON 对象

API 调用后 React/Flux seState 不重新渲染组件

数组过滤后的重新排序问题