删除列表中的重复项并获取其编号Dart Flutter

koaltpgm  于 2023-06-24  发布在  Flutter
关注(0)|答案(1)|浏览(142)

我有一个对象列表,我想删除重复项,并将删除项的数量添加到列表中的剩余项。

var data = [
  {
    name: "book",
    qty: 1
  },
  {
    name: "book"
    qty: 1
  },
  {
    name: "book",
    qty: 1
  },
  {
    name: "pen",
    qty: 1
  },
  {
    name: "pen",
    qty: 1
  },
 
];

结果应该是这样的

[{name: "book", qty: 3},{name: "pen",qty: 2}],
ix0qys7i

ix0qys7i1#

可以使用集合库执行此操作。输入以下命令导入集合库
import 'package:collection/collection.dart';
然后使用groupby函数将这些项分组在一起。下面是一个示例代码

var consolidatedData = groupBy(data, (obj) => obj['name'])
      .values
      .map((group) => {
            'name': group.first['name'],
            'qty': group.length,
          })
      .toList();

希望这能帮上忙

相关问题