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

时间:2020-06-26 09:49:24

标签: 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(map);

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

但是我想计算id = 101出现在列表中的次数,那么我该如何实现呢?

1 个答案:

答案 0 :(得分:4)

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

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