部分但不是全部重复项从列表中删除(Flutter)

时间:2019-10-13 07:08:45

标签: flutter dart

我正在使用Google Books api来获取一些json数据。例如,我的查询如下所示:

finalData[index]['volumeInfo']['title']

我正在尝试使用以下代码摆脱某些重复项。这在某种程度上有效,我的重复项较少,但是由于剩下了一些,所以无法100%工作。我正在使用json数据库提供的图书ID来识别个别图书。

convertDataToJson = json.decode(response.body);
      List newItems = convertDataToJson['items'];
      setState(
        () {
            finalData.addAll(newItems);

            var existing = Map<String, dynamic>();

            for (final item in finalData) {
              existing.putIfAbsent(item['id'], () => item);
            }
            finalData = existing.values.toList();
        },
      );

是否有一种方法可以消除所有重复项?

1 个答案:

答案 0 :(得分:0)

您将为每个请求创建一个新的Map,因此您仅从每个请求中删除重复项,而不是从所有请求中删除重复项。您需要将此行放在request方法之外:

var existing = Map<String, dynamic>();