List 如何计算dart中地图列表中元素的出现次数?

List 如何计算dart中地图列表中元素的出现次数?,list,flutter,dart,List,Flutter,Dart,我有一张这样的地图列表 data = [ { 'id': 100, 'quantity': 20 }, { 'id': 101, 'quantity': 25 }, { 'id': 101, 'quantity': 30 } { 'id': 105, 'quantity': 50 } ] data.forEach((x) => map[x] = !map.containsValue(x) ? (1) : (map[x] + 1)); print(ma

我有一张这样的地图列表

data = [
{
  'id': 100,
  'quantity': 20
},
{
  'id': 101,
  'quantity': 25
},
{
  'id': 101,
  'quantity': 30
}
{
  'id': 105,
  'quantity': 50
}
]

 data.forEach((x) => map[x] = !map.containsValue(x) ? (1) : (map[x] + 1));
 print(map);

Output : 
{{id: 100, quantity: 20}: 1, {id: 101, quantity: 25}: 1, {id: 101, quantity: 30}: 1, {id: 105, quantity: 50}: 1}
我能够在这样的列表中计算元素的出现次数

data = [
{
  'id': 100,
  'quantity': 20
},
{
  'id': 101,
  'quantity': 25
},
{
  'id': 101,
  'quantity': 30
}
{
  'id': 105,
  'quantity': 50
}
]

 data.forEach((x) => map[x] = !map.containsValue(x) ? (1) : (map[x] + 1));
 print(map);

Output : 
{{id: 100, quantity: 20}: 1, {id: 101, quantity: 25}: 1, {id: 101, quantity: 30}: 1, {id: 105, quantity: 50}: 1}

但是我想计算id=101出现在列表中的次数,那么我如何才能做到这一点呢?

您可以使用
where
来过滤地图数组,然后使用getter
length

var数据=[
{'id':100,'quantity':20},
{'id':101,'quantity':25},
{'id':101,'quantity':30},
{'id':105,'数量]:50}
];
打印(data.where((e)=>e['id']==101.length);//2

您可以使用
where
来过滤地图数组,然后使用getter
length

var数据=[
{'id':100,'quantity':20},
{'id':101,'quantity':25},
{'id':101,'quantity':30},
{'id':105,'数量]:50}
];
打印(data.where((e)=>e['id']==101.length);//2