【问题标题】:How do I select the greatest view value? [closed]如何选择最大的视图值? [关闭]
【发布时间】:2021-12-07 01:41:25
【问题描述】:

我想得到具有最大视图值的地图?

String api =
    'http:///';

await Dio().get(api).then((value) {
  //  print(value);
  if (value.toString() != 'null') {
    for (var items in json.decode(value.data)) {
      print(items);

      Map<String, dynamic> greatestView = items.fold(
          {},
          (previous, current) => previous['view'] == null
              ? current
              : previous['view']! >= current['view']!
                  ? previous
                  : current);

      print(greatestView);

发生了异常。 NoSuchMethodError (NoSuchMethodError: Class '_InternalLinkedHashMap' 没有实例方法 'fold'。 接收者:_LinkedHashMap len:2 尝试调用: fold(_LinkedHashMap len:0, Closure: (dynamic, dynamic) => dynamic))

【问题讨论】:

  • 请点击edit 并以文字形式包含相关详细信息,而不是损坏的图片链接。

标签: flutter dart


【解决方案1】:

所以你有一个地图列表,你想得到具有最大视图价值的地图吗?我提出这样的建议:

Map<String, dynamic> greatestView = data.fold({}, 
  (previous, current) => previous['view'] == null
    ? current
    : previous['view']! >= current['view']! 
      ? previous
      : current
  );

看起来view 是一个字符串,下面是这种情况下的代码:

Map<String, dynamic> greatestView = data.fold({}, 
  (previous, current) => previous['view'] == null
    ? current
    : int.parse(previous['view']!) >= int.parse(current['view']!) 
      ? previous
      : current
  );

【讨论】:

  • 抱歉,我没有注意到 view 是一个字符串,我建议 View 不应该是一个字符串,但如果有充分的理由,我已经更新了我的答案
  • 不知道做对了没?,我更新了
  • 不,去掉 for 循环,像这样:final value = await Dio().get(api); 然后:if (value != null) {} 然后:Map&lt;String, dynamic&gt; greatestView = value.fold({}, [...]
  • String api = '$http//;最终值 = 等待 Dio().get(api); if (value != null) { Map greatView = value.data.fold( {}, (previous, current) => int.parse(previous['view']) == null ? current : int .parse(previous['view']!) >= int.parse(current['view']!) ? previous : current);打印(最大视图); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-06
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多