flutter 如何修复mapIndexed函数的抖动?

fiei3ece  于 2022-12-14  发布在  Flutter
关注(0)|答案(2)|浏览(120)

我有一个函数,它从一个列表Map并将每个项目添加到另一个列表:

List<TimeSeriesValues> list = (data["list"] as List).mapIndexed(
  (index, e) => TimeSeriesValues(DateTime.tryParse(e["detectedAt"])!,int.parse(e['score']))).toList();

这是TimeSeriesValues类别:

class TimeSeriesValues {
  final DateTime time;
  final int values;

  TimeSeriesValues(this.time, this.values);
}

我还想添加if语句,比如如果e ['score']!= 0,那么我们就把项目添加到列表中,否则就不添加。
如果e ['score']!= 0,则将**时间序列值(日期时间.tryParse(e[“检测位置”])!,int.parse(e ['score']))**添加到列表中,否则不添加
这是API的回应:

[{detectedAt: 2022-11-28T00:00:00.000Z, score: 57},...] // data['list']
taor4pac

taor4pac1#

试试这个:

List<TimeSeriesValues> list = (data["list"] as List).mapIndexed(
  (index, e) => TimeSeriesValues(DateTime.tryParse(e["detectedAt"])!,int.parse(e['score']))).toList();
List<TimeSeriesValues> filteredList = list.where((e) => e.values != 0).toList();
nqwrtyyt

nqwrtyyt2#

只需按如下方式对每个循环使用

List<TimeSeriesValues> list = [];
  (data["list"] as List).forEach((e){
if(int.parse(e['score']) != 0){ list.add(TimeSeriesValues(DateTime.tryParse(e["detectedAt"])!,int.parse(e['score'].toString()))); }
      });

相关问题