Просмотр отсортированных данных Json в таблице Flutter

[
  {
    "1": {
      "name": "Shahed Emon",
      "win_rate": "98.7%"
    }
  },
  {
    "2": {
      "name": "Mustakim Nahid",
      "win_rate": "88.7%"
    }
  },
  {
    "3": {
      "name": "Imtiaz Rizan",
      "win_rate": "72.3%"
    }
  },
  {
    "4": {
      "name": "Ishtiak Rongon",
      "win_rate": "52.6%"
    }
  }
]

У меня есть данные json. Который я отсортировал по win_rate, используя это -

final data = json.decode(jsonData);
  data.sort((a, b) =>
      a.values.first["win_rate"].compareTo(b.values.first["win_rate"]));

теперь я хочу построить таблицу во флаттере, которая соответствует наивысшему "win_rate" с наименьшим "win_rate". Как к этому подойти? Я пробовал это, но в итоге получаю ошибки / нет данных.

1 ответ

Решение

Просто возьмите перевернутый элемент из ваших данных и поместите его перед текущим элементом:

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Container(
      color: Colors.yellow,
      child: Table(
        border: TableBorder(horizontalInside: BorderSide(width: 1)),
        children: _sortedData.map(
          (item) {
            final reverseItem = _sortedData[
                _sortedData.length - _sortedData.indexOf(item) - 1];
            return TableRow(
              children: [
                TableCell(
                  child: Text(item.values.first['name']),
                ),
                TableCell(
                  child: Text(reverseItem.values.first['name']),
                )
              ],
            );
          },
        ).toList(),
      ),
    ),
  );
}

Также вы можете зациклить отсортированные данные и создать соответствующий массив из функции сборки.

Другие вопросы по тегам