如何在 React Native 中对平面列表进行排序?

How to sort flatlist in React Native?

我有数据存储在平面列表中显示的状态,我想根据评级对数据进行排序。因此,如果我单击排序按钮,它们应该按 ascending 顺序排序,当我再次单击时,它们应该按 descending 顺序排序。

我有一个状态存储的对象数组,下面只是一个重要的数据。

show_data_list = [{ ratings : { overall : 4, ...other stuff } } ]

有什么方法可以做到吗,我尝试使用对数组进行排序的 map 函数

list.map((a,b) => a-b)

但是我如何使用它来对我的对象数组进行排序,我不能传入 2 item.rating.overall 作为参数。

在此先感谢您的帮助:)

您可以使用 javascript 的内置 sort 功能。您可以为它提供一个自定义 comparer 函数,如果第一项优先,它应该 return 负值,如果它们相同则为 0,如果第二个值优先则为正值。

show_data_list.sort((a, b) => { return a.ratings.overall - b.ratings.overall; })。这将按升序对数据进行排序。

show_data_list.sort((a, b) => { return b.ratings.overall - a.ratings.overall; })。这将按降序对其进行排序。

我就是这样解决的,将数据存储在一个变量中,然后根据条件对其进行排序

let rating = this.state.show_data_list;
      rating.sort(function(a,b) {
        return a.ratings.Overall < b.ratings.Overall