如何计算列表中项目的出现次数

2024-03-15

我是 Dart 新手。目前我有一个重复项目列表,我想计算它们的出现次数并将其存储在地图中。

var elements = ["a", "b", "c", "d", "e", "a", "b", "c", "f", "g", "h", "h", "h", "e", "a"];

我想要得到这样的结果:

{
  "a": 3,
  "b": 2,
  "c": 2,
  "d": 2,
  "e": 2,
  "f": 1,
  "g": 1,
  "h": 3
}

我做了一些研究并找到了一个 JavaScript 解决方案,但我不知道如何将其转换为 Dart。

var counts = {};
your_array.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });

尝试一下这个:

  var elements = ["a", "b", "c", "d", "e", "a", "b", "c", "f", "g", "h", "h", "h", "e"];
  var map = Map();

  elements.forEach((element) {
    if(!map.containsKey(element)) {
      map[element] = 1;
    } else {
      map[element] += 1;
    }
  });

  print(map);

其作用是:

  • 循环遍历列表元素
  • 如果您的地图没有将列表元素设置为键,则创建值为 1 的该元素
  • 否则,如果元素已经存在,则将现有键值加 1

或者,如果您喜欢语法糖和衬线,请尝试以下之一:

  var elements = ["a", "b", "c", "d", "e", "a", "b", "c", "f", "g", "h", "h", "h", "e"];
  var map = Map();

  elements.forEach((x) => map[x] = !map.containsKey(x) ? (1) : (map[x] + 1));

  print(map);

在所有编程语言中都有很多方法可以实现这一点!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算列表中项目的出现次数 的相关文章

随机推荐