List 中的Map 类型如何去重? Dart语言中

404 阅读1分钟

直接上代码

例子:

List<Map> data = [
    {"name":"张三","id":"1992"},
    {"name":"李四","id":"1993"},
    {"name":"张三","id":"1992"},
    {"name":"王二","id":"1994"}
]    
//去重
List<Map> noDuplicate(List data) {
  Set a = {}; //将a带上去重属性
  List<Map> h = [];
  for (int i = 0; i < data.length; i++) {
    a.add(data[i]["id"]); //a会自动将重复的去掉  a=[1992,1993,1994]
  }
  List b = a.toList();
  for (int j = 0; j < a.length; j++) {
    for (int i = 0; i < data.length; i++) {
      if (b[j] == data[i]['id']) {
        h.add(data[i]);
        break;
      }
    }
  }
  return h;
}