Как отсортировать плоский список в React Native? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть данные, которые хранятся в состоянии, отображаемом в плоском списке. Я хочу отсортировать данные по рейтингу. Поэтому, если я нажимаю на кнопку сортировки, они должны быть отсортированы в порядке ascending, а когда я нажимаю снова, они должны быть отсортированы в порядке descending.

У меня есть массив объектов, сохраненных в состоянии, ниже просто часть данных, которая важна.

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

Есть ли способ, которым я мог бы сделать это, я попытался использовать функцию карты, которая сортирует массив

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

Но как я могу использовать это для сортировки моего массива объектов, я не могу передать 2 item.rating.overall в качестве параметра.

Заранее спасибо за помощь:)

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Так я решил, что данные хранятся в переменной, а затем сортируются по условию

let rating = this.state.show_data_list;
      rating.sort(function(a,b) {
        return a.ratings.Overall < b.ratings.Overall
1 голос
/ 10 марта 2020

Вы можете использовать встроенную функцию javascript sort. Для него можно предоставить пользовательскую функцию comparer, которая должна возвращать отрицательное значение, если первый элемент имеет приоритет, 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; }). Это отсортирует их в порядке убывания.

...